Миграция от муравья к мавену в Netbeans - PullRequest
13 голосов
/ 26 марта 2009

Наше программное обеспечение написано на Java и включает в себя множество (7) проектов.

Эти проекты являются проектами Netbeans ant. Я собираюсь конвертировать их в maven2.

Где я могу найти подсказки для таких вещей?

Ответы [ 5 ]

14 голосов
/ 26 марта 2009

Не читайте эту книгу. Это только сделает вас смущенным. Вместо этого прочитайте эту книгу: «Maven - полное руководство» http://www.sonatype.com/books/maven-book/reference/.

Кроме того, на сайте maven много информации, но структура ужасна, поэтому для навигации по нему вам нужно будет использовать Google.

Вот мое предложение:

  1. Делайте это вручную, а не с «автоматической» «помощью» из IDE. Интеграция Maven пока работает не так хорошо, ни в какой IDE.

  2. Убедитесь, что ваш программный проект разделен на модули под общим зонтичным модулем, чтобы каждый модуль генерировал один двоичный артефакт (jar, war, ...), возможно, сопровождаемый javadoc исходного кода, стоящего за этим. артефакт, почтовый индекс с исходным кодом и т. д. Основной принцип заключается в том, что каждый модуль создает один артефакт, содержащий весь не тестовый код в этом модуле. Вы можете сделать это, пока проект еще построен ant.

  3. Каждый модуль должен соответствовать стандартной директории maven. Назначение сборки находится в [module] / target / [output-type, например, "классы"]. Исходный код находится в [module] / src / main / [src-type, например "Java"] и [модуль] / тест / [тип SRC]. Артефакт состоит из всего кода в src / main и ни одного из кода в src / test, так как он встроен в целевые каталоги. Вы можете сделать это, пока муравей еще строит.

  4. Начните с преобразования субмодуля, который не зависит от других модулей в проекте.

  5. Теперь вы можете создать родительский модуль maven pom.xml с типом артефакта «pom», состоящий из одного из модулей ниже. Создайте дочерний модуль для первого подмодуля (тот, который имеет только внешние зависимости), используя зонтичный модуль в качестве «родительского». Помните, что вам нужно указать версию для родителя. Не забудьте также добавить дочерний модуль как «модуль» в родительский модуль. Всегда используйте $ {project.version} в качестве версии в дочерних модулях при создании таких многомодульных проектов. Все модули под родительским элементом должны быть освобождены одновременно за одну операцию, и если вы используете этот параметр, maven будет следить за тем, чтобы поля версий оставались одинаковыми во всех модулях и обновлялись везде во время выпуска. Это может затруднить повторное использование существующей схемы нумерации, но это не имеет значения. Вы никогда не будете исчерпывать номера версий в любом случае.

  6. Добавьте необходимые зависимости и убедитесь, что вы можете собрать родительский и дочерний модули вместе, используя команду "mvn clean install" из родительского модуля.

  7. Выполните аналогичные действия с остальными модулями. Зависимости от других модулей в том же родительском проекте также должны использовать $ {project.version} в качестве «версии», от которой они зависят, что означает «ту же версию, что и эта». ПРИМЕЧАНИЕ. Для того, чтобы собрать модуль, от которого вы зависите, он должен быть собран с использованием «mvn install», чтобы он был развернут в вашем локальном (компьютерном) хранилище. В противном случае зависимый модуль не сможет найти классы. НЕТ зависимостей исходного кода между модулями в maven, только зависимости от встроенных и упакованных версий, установленных в локальных и удаленных репозиториях. Это может быть очень запутанным, если вы пришли из ant-проектов. Сборка из корневого модуля, пока вы не освоитесь с этим. Это займет два дня.

  8. Не используйте maven интеграцию в IDE. Это плохая идея. Используйте «mvn idea: idea» или «mvn eclipse: eclipse», чтобы настроить рабочее пространство в качестве обычного IDE-проекта non-maven. Механизмы межмодульных зависимостей в maven и IDE не идентичны и никогда не будут. Кроме того, если у вас есть несколько mavenized проектов с зависимостями между ними, вы хотите иметь несколько из них в вашей рабочей области с зависимостями, установленными между ними. Это можно сделать с помощью mvn idea: idea / eclipse: eclipse, если вы создадите отдельный файл проекта maven с именем «workspace.xml» (или где-либо еще) в том же каталоге, что и родительский модуль, настроенный как многомодульный проект, содержащий модули ». «. и "../otherproject" (здесь только односторонняя ссылка, родительские ссылки не возвращаются). Если вы запустите «mvn idea: idea / eclipse: eclipse -f workspace.xml», вы получите рабочее пространство со всеми этими модулями, связанными вместе. Нет интеграции IDE позволяет вам сделать это. Это звучит как большая дополнительная работа, но файл workspace.xml действительно маленький. Он не должен содержать все эти зависимости и все такое, только ссылку на модули, которые вы хотите связать вместе в вашей IDE.

0 голосов
/ 20 июля 2014

Я успешно перенес проект NetBeans Ant в проект Maven, используя инструкции Джозефа Мокера: http://forums.netbeans.org/ptopic55953.html Я цитирую важную часть:

  1. закрыть проект
  2. переименуйте build.xml, nbproject файлы / папки во что-нибудь, чтобы NB их не распознал.
  3. закройте и перезапустите NB (поэтому все сведения о кеше памяти проекта исчезли)
  4. скопировать пустой pom из другого проекта.
  5. открыть проект обратно в NB (NB теперь должен идентифицировать его как проект maven)
  6. переупорядочить файлы в соответствии с maven путь (™)
0 голосов
/ 27 октября 2009

Я обнаружил, что миграция не нужна. Реальными требованиями, которые мне были нужны, была автоматическая загрузка зависимостей (библиотек).

Это также достигается с помощью Ivy , который, тем не менее, использует репозитории maven.

Я решил преобразовать проект из муравья в муравья + плюща с помощью IvyBeans .

0 голосов
/ 27 октября 2009

Я создал скрипт для переноса сборок Ant в Maven. Вы можете найти больше информации здесь:

https://github.com/ewhauser/ant2maven

Это не поможет вам исправить структуру каталогов и / или какие-либо дополнительные задачи Ant, но устраняет множество утомительных шагов для начала.

0 голосов
/ 26 марта 2009

Это не будет легкой задачей, так как Maven2 ожидает, что файлы будут организованы определенным образом. В любом случае Better Builds with Maven - это бесплатная книга, которая поможет вам начать. Он поможет вам понять Maven, а также содержит главу о миграции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...