Шаблоны проектов Eclipse/Java

Я изучаю возможности создания "шаблонов проектов" для проектов, над которыми работает моя команда (Embedded Java). Мы хотим сделать тривиальным для нового разработчика, чтобы не испортить создание нового проекта. Все инструменты, которые мы используем в нашей команде, должны быть pr

Основная идея состоит в том, что для создания проекта и IDE должна быть одна команда, чтобы обеспечить следующее:

  • Создайте новый проект Java, включая файл проекта Eclipse.
  • Создать сборку script (необходимо работать вне среды IDE).
  • Включите опции развертывания в сборке script.
  • Настройте проект git.
  • Настройка PMD для работы с настроенным набором правил, интегрированных в среду IDE.
  • Настройка Checkstyle для запуска с настроенным набором правил, интегрированных в IDE.
  • Настройте шаблоны кода (Eclipse), чтобы соответствовать нашим правилам кодирования команд (Javadoc,...)
  • Конфигурирование форматирования Eclipse.
  • Конфигурация команды должна легко обновляться.

До сих пор я вижу два способа сделать это:

  • Архетип Maven 2: Мне в основном не нравится maven, потому что я так часто сражаюсь с ним. Я не уверен, что накладные расходы на попытку сделать инструмент сделать то, что я хочу, чтобы он оправдывал усилия. С другой стороны, похоже, что это именно то, что должны делать архетипы. Есть ли у вас опыт в том, как далеко вы можете настроить eclipse: часть eclipse? Я думаю, что конфигурация затмения будет самым сложным шагом.
  • Eclipse Nature: Я мог бы создать характер проекта. Насколько я понимаю Eclipse Ecosystem, который является компонентом, который будет отображаться, если бы я решил предоставить что-то вроде щелчка правой кнопкой мыши → Создать → Мой тип проекта Java. Вы знаете, как далеко я могу настроить полученный проект Eclipse?
  • Shell Script: я мог бы создать пустой проект со всей конфигурацией на месте, ввести некоторые специальные токены в соответствующие текстовые файлы (например, а затем написать shellscript, который считывает значения для этих параметры из файла свойств, скопируйте шаблон проекта и замените значения.). Хотя это, возможно, немного хрупко, это кажется простым и быстрым способом сделать это.

Дайте вам немного больше контекста: это нормально, если результат блокирует нас в Eclipse. Хотя сборка должна работать без Eclipse (для нашего CI), команда использует eclipse, и маловероятно, что мы когда-нибудь переключимся. Также все разработчики запускают более или менее одно и то же Hard + Software (Linux). Мы не работаем в домене Enterprise Java Apps, поэтому нам действительно не нужны все необходимые материалы для управления зависимостями от maven. На самом деле наш процесс сборки настолько особенный, что, вероятно, гораздо проще просто вызвать make или ant скрипты.

Итак, вопросы:

Есть ли у вас опыт такого рода вещей? Есть ли у вас мнение относительно пути природы Eclipse или Maven? Знаете ли вы другие инструменты, которые обеспечивают такую ​​настройку?

Большое спасибо за ваш вклад.

Ура, Valentin

PS: Люди, похоже, религиозны в своих инструментах построения. Пожалуйста, обратите внимание, что я не хочу, чтобы начать flamewar здесь или против maven. Я уверен, что maven может стать отличным инструментом, но я думаю, что в нашем контексте нам нужно только 5% его функциональности, и из моего опыта, оставшегося на 95%, может быть на вашем пути.

Ответы

Ответ 1

Вы также можете создать собственный проект инструментария PDE и расширить шаблоны проектов PDE.

В IBM DelevoperWorks есть отличная статья, в которой дается отличное введение в Создание шаблонов с помощью среды разработки плагинов Eclipse

Вы также можете прочитать документацию Eclipse о следующих точках расширения PDE:

  • org.eclipse.pde.ui.templates - регистрирует шаблоны содержимого проекта плагина, которые используются для генерации кода для новых расширений.
  • org.eclipse.pde.ui.newExtension - вносить вкладки, которые будут использоваться для создания и редактирования новых расширений в редакторе манифеста плагина PDE
  • org.eclipse.pde.ui.pluginContent - предоставляет вкладчикам, которые создают дополнительное содержимое проектов подключаемого модуля PDE.

Ответ 2

Что бы вы ни делали, ради Бога, даже не думайте об использовании Maven VIRUS для этого. Исключение: если вы ненавидите себя и любите причинять ненужную боль себе и другим, потому что вы получаете от этого какое-то больное удовольствие, тогда вы должны использовать Maven. Если вы также предпочитаете кровоточить изнутри во время работы, бросьте Айви.

Генерация Eclipse - хорошая идея (и, вероятно, идеальная для конечных пользователей), но реально, чтобы это не превратилось в такой большой проект, просто перейдите к простому решению: создайте шаблон и используйте простой способ его настройки. Просто используйте find/replace или простой Python script, если это действительно необходимо. Это достаточно сложно, с полным, прочным, повторно используемым шаблоном, поскольку это (сам проект). Пусть подключаемый модуль Eclipse или другая более автоматическая версия появятся позже, после того как вы поймете, как много это работает.

Метод find/replace или script не является "хрупким", так как ваш шаблон будет небольшим и написан одним автором, а не каким-то массовым производственным приложением, кто знает, что внутри него. Более сложные решения - это те, которые, как правило, становятся хрупкими, а не простыми.

Я думаю, что это фантастическая идея, поэтому не позволяйте никому говорить об этом иначе, я тоже создаю шаблоны.

Ответ 3

Посмотрите Gradle, он поддерживает хороший материал от Ivy (управление зависимостями), Maven, как и Archetypes.

Быстрый вопрос, хотя... как часто вам приходится создавать новые проекты? Неужели это громоздко, что он определит, какую систему сборки вы будете использовать?

Это, как говорится, мне очень нравится иметь стандартную структуру проекта, экономит много времени, пытаясь решить некоторые глупые вещи, о которых даже не стоит думать...