многомодульный проект maven

Если у меня в проекте 6 модулей, можно ли построить только один из шести? не комментируя других?

ИЗМЕНИТЬ

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


person Gandalf StormCrow    schedule 05.03.2010    source источник


Ответы (4)


можно ли построить только один из шести? не комментируя других?

Насколько я понимаю, вы хотите запустить maven из агрегирующего проекта (т.е. сборки реактора), но построить только один модуль. Это возможно с помощью параметра -pl, --projects список проектов (см. дополнительные параметры реактора):

mvn --projects my-submodule install

Это очень мощная опция, особенно в сочетании с --aslo-make (чтобы также создавать проекты, от которых зависят перечисленные модули) или --also-make-dependents (чтобы также создавать проекты, которые зависят от перечисленных модулей). На основе вашего обновления вам может понадобиться следующее:

mvn --projects my-submodule --also-make install

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

person Pascal Thivent    schedule 05.03.2010

Открытие командной оболочки, переход в каталог подмодуля и выполнение mvn install (или любого другого предпочитаемого вами жизненного цикла) должно помочь.

person Péter Török    schedule 05.03.2010
comment
@Péter Török Я обновил свой вопрос .. ваши решения пока самые простые .. Я не могу построить подмодуль .. Мне нужно сначала установить родительский модуль, потому что подмодуль не будет работать сам по себе из-за родительских тегов. - person Gandalf StormCrow; 05.03.2010
comment
@Gandalf StormCrow Тогда это более сложная история... Я стою в стороне и смиренно наблюдаю, как @Pascal творит свою магию :-) - person Péter Török; 05.03.2010

Вы можете просто собрать модуль, перейдя в этот каталог модулей и запустив файл mvn clean install.

Однако обратите внимание, что при использовании этого метода зависимости с другими модулями будут взяты из вашего локального репозитория (или корпоративного репозитория).

Возьмем простой пример:

project
  + commons
  + business

Теперь представьте, что вы создаете в корневом каталоге весь проект с помощью команды mvn clean install. Учтите, что все ваши модули находятся в версии 1.0.

Теперь вы переходите на версию 1.1. Если вы запустите mvn clean install только для проекта business, он попытается получить 1.1 модуля commons. Затем у вас будет ошибка, так как Maven не найдет версию 1.1 в вашем локальном репозитории.

person Romain Linsolas    schedule 05.03.2010

В Eclipse, если у вас установлен m2eclipse: щелкните правой кнопкой мыши нужный модуль и выберите «Запуск от имени» -> «Пакет Maven».

person Robert Wilson    schedule 05.03.2010