如何在命令行上排除Maven模块

onk*_*ows 5 maven

据称,您可以在命令行中排除模块,例如通过运行命令

mvn clean install -pl \!modulename
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用(不再).

顺便说一下,包括模块也行不通

mvn clean install -pl modulename
Run Code Online (Sandbox Code Playgroud)

Maven reactor无法找到模块并失败.

[ERROR] Could not find the selected project in the reactor: modulename -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

但该模块modulename确实存在.在进行普通构建时,Reactor将在构建模块列表中生成其名称.

[INFO] modulename
Run Code Online (Sandbox Code Playgroud)

有没有办法在命令行上排除模块?如果可能的话,我不想更改pom文件.

Gen*_*ene 17

让我们在您的父pom.xml中说,您的模块结构是这样的:

在此输入图像描述

然后,如果我想排除模块"core"和"app1",命令将是:

mvn -pl '!core,!app1' clean install
Run Code Online (Sandbox Code Playgroud)

所以-pl标志的最终结果是:

在此输入图像描述

注意:

将模块名称放在父pom.xml中(如上所示),而不是<name>子模块中的模块名称.

在"clean install"之前放置-pl标志.

此外,每个逗号之间不应有分隔模块名称的空格.

如果没有设置-pl标志,这就是构建的样子: 在此输入图像描述

  • 对于那些想知道的人,“ pl”代表项目列表 (3认同)
  • 我必须删除模块名称中的引号以使其起作用。`mvn -pl!core,!app1全新安装` (2认同)