Как правильно интегрировать Maven в Eclipse и в процесс разработки программного обеспечения? - PullRequest
1 голос
/ 31 августа 2010

Я новичок в Maven.Главная функция, от которой я выигрываю, - это автоматическое управление зависимостями.Стандартизированная структура каталогов, кажется, также хороша, но Eclipse также имеет стандартную структуру каталогов.Структура каталогов теперь не зависит от Eclipse, но теперь она зависит от maven.Хорошо, я вижу, обе программы кажутся достаточно гибкими на этом этапе.

Я не совсем уверен, если maven больше предназначен для серверов или клиентских систем, например, есть функция / плагин для генерацииСайт проекта.Разве это не имеет смысла в серверной системе?

Как интегрировать maven с системой контроля версий (VCS), например SVN?Я имею в виду систему, в которой есть хранилище и постоянно обновляемый веб-сайт с разделом загрузки для артефактов разработки.

Как интегрировать maven с Eclipse?Я сейчас использую m2eclipse с интеграцией WTP.Это нормально, но у меня есть некоторые поведения, которые мне не нравятся, например:

  • Когда я генерирую новые проекты Java, версия JRE устанавливается на 1.4.Я должен сбросить его до 1,6 / по умолчанию для рабочего пространства.
  • Конфигурация граней нестабильна.Некоторые конфигурации должны быть выполнены вручную и в определенном порядке.

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

Я знаю, что есть другой плагин, который интегрирует maven в Eclipse.Я еще не пробовал.Это лучше?

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

Столько всего, что может быть интегрировано для поддержки всего процесса разработки программного обеспечения.Может быть, это нереально, чтобы получить все эти функции.На данный момент интеграция Eclipse с интеграцией WTP и VCS имеет для меня самый высокий приоритет.

Есть предложения?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 31 августа 2010

Структура каталогов теперь не зависит от Eclipse, но теперь она зависит от maven. Хорошо, я вижу, обе программы кажутся достаточно гибкими на данный момент.

Да, они оба гибкие, чтобы мы могли согнуть один или другой. Но если бы мне пришлось выбирать макет, я бы выбрал независимый от IDE, то есть макет Maven, и я бы придерживался значений по умолчанию, чтобы минимизировать усилия и потому, что они хорошо известны (поэтому любой, кто знаком с Maven, знает, где найти вещи). И если кто-то хочет использовать IntelliJ IDEA или NetBeans, потому что он чувствует себя более продуктивно с этим, он может сделать это. Другими словами, я не вижу никакой выгоды в использовании макета Eclipse.

Я не совсем уверен, если maven больше предназначен для серверов или клиентских систем, например есть функция / плагин для создания сайта проекта. Разве это не имеет смысла в серверной системе?

Maven может использоваться для локальных сборок на машинах разработчиков, для центральных сборок на машине непрерывной интеграции. Такие вещи, как создание веб-сайта, развертывание артефактов, обычно выполняются на центральном сервере.

Как интегрировать maven с системой контроля версий (VCS), например SVN? Я думаю о системе, в которой есть хранилище и постоянно обновляемый веб-сайт с разделом загрузки для артефактов разработки.

Я не очень понял первую часть вопроса. Как вы хотите точно интегрировать Maven с SVN (есть плагин maven-release-plugin, но я не уверен, что это вопрос)? Во второй части традиционный подход заключается в использовании сервера непрерывной интеграции для запуска сборки после изменения в VCS и развертывания (в смысле maven) созданных артефактов в «корпоративном хранилище». Многие люди используют Hudson в качестве CI-сервера.

Когда я генерирую новые проекты Java, версия JRE устанавливается на 1.4. Я должен сбросить его до 1,6 / по умолчанию для рабочего пространства.

Это потому, что сам проект maven не настроен на использование уровня 1.6 (конфигурация Eclipse получена из POM, что имеет смысл). Вы должны настроить плагин компилятора maven для 1.6. Вот один из способов сделать это (есть много из предыдущих вопросов по этой теме ):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

А затем обновите конфигурацию вашего проекта в Eclipse через , щелкните правой кнопкой мыши , затем Maven> Обновить конфигурацию проекта .

Конфигурация граней нестабильна. Некоторые конфигурации должны быть выполнены вручную и в определенном порядке.

Они для меня и снова, они получены из вашего POM (например, из версии вашего web.xml).

И у меня более или менее серьезная проблема с расширением WTP. Я думаю, важно сказать, что расширение WTP официально не поддерживается и может не иметь качества продукции.

А? Где ты это прочитал? Хорошо работает для веб-приложений для меня.

Я знаю, что есть еще один плагин, который интегрирует maven в Eclipse. Я еще не пробовал. Это лучше?

У меня нет опыта работы с Eclipse IAM . Но что у вас за проблема с m2eclipse?

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

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

1 голос
/ 31 августа 2010

Некоторые случайные точки, чтобы подтолкнуть вас в правильном направлении:

Стандартизованная структура каталогов также выглядит неплохо, но Eclipse также имеет стандартную структуру каталогов

  • Eclipse не имеет "стандартной" структуры каталогов.Например, некоторые люди помещают свои модульные тесты в src рядом со своим кодом, а другие помещают его в отдельный каталог, например tests или test.Вы можете настроить столько, сколько пожелаете, но Maven имеет значения по умолчанию , за которыми следует почти каждый:
  • источник в src/main/java
  • тесты в src/test/java
  • ресурсов, необходимых для запуска в src/main/resources
    • языковых файлах
    • Spring config files
  • ресурсов, необходимых для запуска тестов
    • золотые результаты
    • конфигурационные файлы в src/main/config
  • Eclipse - это IDE, а Maven - встроенный инструмент управления сборкой
  • Суть: если вы просите Eclipse создать JAR / WAR, вы должны вручную указать ему, что включать и где.Поскольку вы поместили ваши файлы в настройки Maven по умолчанию, вы получите такие вещи, как:
    • JAR / WAR содержат скомпилированные классы Java из src/main/java, но не из src/test/java
    • конфигурационных файлов изsrc/main/config не заходите в JAR / WAR (вроде бы побеждает назначение файла конфигурации, если он это сделал)
    • тестовые ресурсы из src/test/resources не заходят в JAR / WAR
  • если вы решили создать сборку (Maven говорит о распространении вашего кода, который вы можете разместить на своем веб-сайте, который включает документацию, исходный код, двоичные файлы и т. Д.), Он может создать JAR, конфигурациюфайлы и javadocs в ZIP-файл.

Я не совсем уверен, если maven больше предназначен для серверов или клиентских систем, например, есть функция / плагин для генерациивеб-сайт проекта.

Да, плагин Maven для сайта .

Разве это не имеет смысла в серверной системе?

Не совсем.Документация имеет решающее значение для любого проекта, особенно для клиентских систем.

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

Поскольку интеграция Maven с Eclipse через плагин m2eclipse не идеальна, я на самом деле не будуиспользовать его для проектов WTP.Я использую плагин Maven Eclipse для генерации файлов проекта Eclipse, а затем импортирую проект как обычный проект Eclipse.Недостатком является то, что файлы проекта Eclipse должны быть перезапущены после любых существенных изменений в проекте.

Контроль версий для всех документов тоже подойдет.

Это не Maven или какой-либо инструмент управления сборкой.Это ваш SCM , Subversion или любой другой.

Когда я генерирую новые проекты Java, версия JRE устанавливается на 1.4.Я должен сбросить его до 1,6 / рабочее пространство по умолчанию вручную.

Вы можете установить это через Maven .

Может быть, это нереально, чтобы получить всеиз этих функций.На данный момент интеграция Eclipse с WTP и VCS имеет для меня наивысший приоритет.

Плагин m2eclipse и его друзья лучше всего работают для простых проектов Java Maven.Лично я использую плагин Maven eclipse для создания проекта Eclipse для любых веб-проектов, EJB и т. Д.

Есть недостатки этого, как упоминалось ранее, но преимущества, включая управление зависимостями, как вы упомянули, перевешивают их, ИМХО.

Конечно, плохо настроенный проект Maven все еще плохо настроен.Это не волшебство.:)

...