Определите список модулей, которые должны быть собраны в многопроектной сборке Maven
Я хотел бы использовать опцию Maven -pl, чтобы определить, какие конкретные модули должны быть включены в реактор. Опция работает, если указан список путей модуля. К сожалению, предоставление artifactIds модуля не работает вообще. Документы Sonatype 'Maven: The Complete Reference' используют мультипроектный пример, где имена каталогов совпадают с artifactIds:
http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html
Можно ли использовать опцию -pl с artifactId?
1 ответ
Да, это возможно. Взгляни на mvn --help
:
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
Обратите внимание, в частности, что artifactId
без ведущего groupId
до сих пор ведущий толстой кишки.
Так, например, в случае, когда artifactId
совпадает с именем каталога, все эти три строки относятся к одному и тому же модулю в Maven:
mvn -pl maven-core
mvn -pl :maven-core
mvn -pl org.apache.maven:maven-core
mvn
кажется, взять список, который вы предоставляете -pl
к сердцу и не строить никаких зависимостей автоматически.
Итак, в дополнение к ответу Джо: если проект / модуль, который вы пытаетесь построить, зависит от других модулей, вы можете задать mvn
строить их также с -am
,
-am,--also-make
If project list is specified, also build projects required by the list
Если указан список проектов = если -pl
опция используется
Вот примеры:
mvn -pl maven-core -am
mvn -pl :maven-core -am
mvn -pl org.apache.maven:maven-core -am