Создайте один модуль из многомодульного pom.

StackOverflow https://stackoverflow.com/questions/1612854

  •  06-07-2019
  •  | 
  •  

Вопрос

Возможно ли это сделать?

Окружающая среда:Мультимодульный пом состоит из 3-х модулей:мм1, мм2, мм3.Модуль mm2 имеет зависимость mm1.Родительский pom можно построить без каких-либо ошибок.

Вопрос:Можно ли собрать один модуль mm2 (т. е. запустить maven из базового каталога mm2) без установки mm1 в локальный репозиторий?

Спасибо.

Это было полезно?

Решение

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

Итак, в вашем случае:

mvn reactor:make -Dmake.folders=mm2

В этом случае вы строите модуль mm2 и модули, от которых он зависит (mm1).

Полезные ссылки:

Из книжных примеров я строю только проект persist и его модель проекта зависимостей.Другие проекты не затронутыmvn reactor:make -Dmake.folders=sample-persist

альтернативный текст http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependentities.png

Другая полезная команда: reactor:make-dependents которые создают проекты, зависящие от X.

Другие советы

Я не совсем понимаю, что вы подразумеваете под «без установки mm1 в локальный репозиторий».Вы имеете в виду строительство мм2 раньше или никогда?

Под вопросом, возможно, один из новых вариантов сборки, анонсированных в Советы и рекомендации Maven:Расширенные параметры реактора Сообщение в блоге может помочь:

Начиная с выпуска Maven 2.1, существуют новые параметры командной строки Maven, которые позволяют манипулировать тем, как Maven будет создавать мультимодульные проекты.Эти новые варианты:

-rf, --resume-from
        Resume reactor from specified project
-pl, --projects
        Build specified reactor projects instead of all projects
-am, --also-make
        If project list is specified, also build projects required by the list
-amd, --also-make-dependents
        If project list is specified, also build projects that depend on projects on the list

Я специально думал о -pl и -am параметры.Чтобы собрать подмножество модулей, запустите следующую команду из корневого каталога:

$ mvn --projects mm2 --also-make install

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

Это противоречит принципу зависимостей Maven2.Какой именно интерес в этом?

Однако мы можем себе представить, что зависимость mm1 от mm2 можно определить как system зависимость:

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top