如何使用命令行从Maven构建中排除某些模块

Bas*_*stl 50 maven

有没有办法从大型反应堆构建中排除某些模块,类似于-pl?

以下是一些持久执行的方法:

如何从Maven反应堆构建中排除模块?

我想从shell中做到,或者至少不修改poms,我不允许改变它.

Yog*_*h_D 85

Maven 3.2.1添加了此功能,您可以使用它来指定您想要的确切项目(或排除您不想要的项目)-pl--projects以下是如何排除两个:

-pl "!<modulename>,!<modulename2>"
Run Code Online (Sandbox Code Playgroud)

排除某些模块.这可以是要包含/排除的逗号分隔值列表.

  • `&lt;modulename&gt;` 是子模块的目录名称,而不是artifactId (3认同)

Rad*_*adu 50

关于接受的答案的另一个评论,不要忘记在bash中运行命令时逃避感叹号:

> mvn clean install -pl \!module,\!module/submodule,\!groupId:artifactId
Run Code Online (Sandbox Code Playgroud)

  • 单引号('),即 (2认同)
  • 谢谢@dstibbe`mvn clean -pl'!module'`对我有用 (2认同)
  • 或者使用 `-` 而不是 `!`,即 `&gt; mvn clean install -pl -module,-module/submodule,-groupId:artifactId` (2认同)

Gon*_*hal 16

正如Yogesh_D所写,可以使用maven 3.2.1+的-pl参数完成

这是一个例子:

> mvn clean install -amd -pl !module,!module/submodule
Run Code Online (Sandbox Code Playgroud)

您需要手动列出每个子模块(和子子模块等),它不会递归地排除它们.使用斜杠进行包分离.它是文件夹路径,而不是组或工件ID.


gre*_*ker 7

我不相信这是目前可以从命令行.maven3中有一个开放的功能请求(http://jira.codehaus.org/browse/MNG-5230).

看起来您此时唯一的选择是修改pom并创建一个新的构建配置文件,其中仅包含您要构建的模块.