Установить родительский POM без сборки дочерних модулей - PullRequest
108 голосов
/ 29 февраля 2012

У меня есть родительский POM в проекте Maven со следующей структурой:

             parent
               |
        ---------------
        |             |
      child1       child2

Я хочу установить POM "родительского" в локальном РЕПО, чтобы разрешить child1 внесите некоторые изменения, которые я сделал в dependencyManagement, но Я не могу выполнить обычную "чистую установку" , потому что "child2" не работает и не собирается.

Какой правильный способ сделать это с maven (кроме как пойти к родительскому pom и комментировать модуль "child2" ).

Ответы [ 2 ]

172 голосов
/ 29 февраля 2012

Используйте опцию '-N' в команде mvn.

С mvn -h:

-N, - не рекурсивный. Не участвовать в подпроектах

31 голосов
/ 01 марта 2012

Хотя Гийом действительно прав, и это правильный вариант, я бы лично рекомендовал оставить вашего родителя в отдельном модуле.

Я считаю, что наилучший подход к наследованию заключается в следующем:

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

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

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

Существует множество преимуществ сохранения родителя и агрегатора как двух отдельных вещей. Но, в конце концов, вы выбираете то, что лучше для вашего проекта / среды.

...