Сборка одного модуля из многомодульного ПОМ - PullRequest
8 голосов
/ 23 октября 2009

Можно ли это сделать?

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

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

Спасибо.

Ответы [ 3 ]

14 голосов
/ 23 октября 2009

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

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

Начиная с версии 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

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

3 голосов
/ 23 октября 2009

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

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

mvn reactor:make -Dmake.folders=mm2

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

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

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

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

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

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

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

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

<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...