Установите родительский POM без создания дочерних модулей


115

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

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

Я хочу установить POM «родителя» в локальном REPO, чтобы позволить child1 принять некоторые изменения, которые я сделал в dependencyManagement, но я не могу выполнить обычную «чистую установку», потому что «child2» сломан и не будет собираться.

Это правильный способ сделать это с помощью maven (кроме перехода к родительскому pom и комментирования модуля «child2» ).

Ответы:


191

Используйте параметр «-N» в команде mvn.

Откуда mvn -h:

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


1
Параметр «-N» или «- нерекурсивный» означает, что не рекурсивно переходить в подпроекты.
STB Land

37

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

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

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

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

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

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


1
Я боролся с этой проблемой в течение нескольких часов и обнаружил, что некоторые проекты работают именно так, например, apache sling, JackRabbit и Artifactory.
accuya

Он изолировал наследование модуля maven (зависимости, свойства и т. Д.) От пакетной сборки (дочерние модули).
Danubian Sailor

4
Считается ли это лучшей практикой? Какие-нибудь блоги или что-то еще по этому поводу?
Sled

1
@ArtB Вы пока что наткнулись на такую ​​статью?
Томислав Накич-Альфиревич

4
@MaximilianSchulz: Как говорится, идеального мира не существует ... Это лишь один из вариантов.
carlspring
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.