Кроме того, на сайте maven много информации, но структура ужасна, поэтому для навигации по нему вам нужно будет использовать Google.
Делайте это вручную, а не с «автоматической» «помощью» из IDE. Интеграция Maven пока работает не так хорошо, ни в какой IDE.
Убедитесь, что ваш программный проект разделен на модули под общим зонтичным модулем, чтобы каждый модуль генерировал один двоичный артефакт (jar, war, ...), возможно, сопровождаемый javadoc исходного кода, стоящего за этим. артефакт, почтовый индекс с исходным кодом и т. д. Основной принцип заключается в том, что каждый модуль создает один артефакт, содержащий весь не тестовый код в этом модуле. Вы можете сделать это, пока проект еще построен ant.
Каждый модуль должен соответствовать стандартной директории maven. Назначение сборки находится в [module] / target / [output-type, например, "классы"]. Исходный код находится в [module] / src / main / [src-type, например "Java"] и [модуль] / тест / [тип SRC]. Артефакт состоит из всего кода в src / main и ни одного из кода в src / test, так как он встроен в целевые каталоги. Вы можете сделать это, пока муравей еще строит.
Начните с преобразования субмодуля, который не зависит от других модулей в проекте.
Теперь вы можете создать родительский модуль maven pom.xml с типом артефакта «pom», состоящий из одного из модулей ниже. Создайте дочерний модуль для первого подмодуля (тот, который имеет только внешние зависимости), используя зонтичный модуль в качестве «родительского». Помните, что вам нужно указать версию для родителя. Не забудьте также добавить дочерний модуль как «модуль» в родительский модуль. Всегда используйте $ {project.version} в качестве версии в дочерних модулях при создании таких многомодульных проектов. Все модули под родительским элементом должны быть освобождены одновременно за одну операцию, и если вы используете этот параметр, maven будет следить за тем, чтобы поля версий оставались одинаковыми во всех модулях и обновлялись везде во время выпуска. Это может затруднить повторное использование существующей схемы нумерации, но это не имеет значения. Вы никогда не будете исчерпывать номера версий в любом случае.
Добавьте необходимые зависимости и убедитесь, что вы можете собрать родительский и дочерний модули вместе, используя команду "mvn clean install" из родительского модуля.
Выполните аналогичные действия с остальными модулями. Зависимости от других модулей в том же родительском проекте также должны использовать $ {project.version} в качестве «версии», от которой они зависят, что означает «ту же версию, что и эта». ПРИМЕЧАНИЕ. Для того, чтобы собрать модуль, от которого вы зависите, он должен быть собран с использованием «mvn install», чтобы он был развернут в вашем локальном (компьютерном) хранилище. В противном случае зависимый модуль не сможет найти классы. НЕТ зависимостей исходного кода между модулями в maven, только зависимости от встроенных и упакованных версий, установленных в локальных и удаленных репозиториях. Это может быть очень запутанным, если вы пришли из ant-проектов. Сборка из корневого модуля, пока вы не освоитесь с этим. Это займет два дня.
Не используйте 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.