定义模块列表,该列表应在Maven多项目构建中构建

Pio*_*aba 3 module build multi-project maven

我想使用Maven -pl选项来定义哪些特定模块应包含在reactor中.如果提供了模块路径列表,则该选项有效.不幸的是,提供模块的artifactIds根本不起作用.Sonatype'Maven:The Complete Reference'文档正在使用多项目示例,其中目录名称与artifactIds匹配:

http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html

是否可以在artifactId中使用-pl选项?

Joe*_*Joe 8

是的,可以这样做.看看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.
Run Code Online (Sandbox Code Playgroud)

特别要注意的是,artifactId没有前导的人groupId仍然有一个前导冒号.

因此,例如,在artifactId与目录名称相同的情况下,这三行将全部引用Maven中的相同模块:

  • mvn -pl maven-core
  • mvn -pl :maven-core
  • mvn -pl org.apache.maven:maven-core

  • @DFeng“列表”,如“项目列表”。Maven 不遵循 POSIX 约定,即短选项仅使用单个字母。所以它不是“-p -l”,它只是“-pl” (2认同)

Kas*_*yap 7

mvn似乎将您提供的列表放在心上-pl,并且不会自动构建任何依赖项。

因此,除了 Joe 的回答之外:如果您尝试构建的项目/模块依赖于其他模块,那么您mvn也可以要求使用-am.

-am,--also-make
       If project list is specified, also build projects required by the list
Run Code Online (Sandbox Code Playgroud)

如果指定项目列表= 如果-pl使用选项

所以例子就变成了:

  • mvn -pl maven-core -am
  • mvn -pl :maven-core -am
  • mvn -pl org.apache.maven:maven-core -am