Maven -pl !<module> 不会从构建中排除 <module> 的子模块

Maven -pl !<module> doesn't exclude submodules of <module> from the build

我用的是maven 3.2.3.

我有一个包含三层嵌套模块的多模块项目。我想构建除一个之外的所有第一级模块(及其子模块)。对于此任务,我尝试使用 -pl 选项并使用 !moduleName 指定我想从构建中排除的模块。

我得到的结果是指定的模块被排除在构建之外,但该模块的子模块没有。

这是预期的行为吗?我也应该明确排除所有嵌套的子模块吗?

简短的回答是:是的,这是预期的行为。

记录此更改的功能请求(允许您使用 !moduleName 从构建中排除特定模块)记录在 issue MNG-5230

在该请求中,有人专门询问了您正在寻找的功能:

how about excluding nested modules? I tried the new feature and it seems as though, when a top module is excluded, its nested modules are not.

答案是:

Nested modules are not excluded by parent module.

看来您必须将它们全部单独列出。

如果您总是排除相同的模块,您可以在根据需要激活或停用的配置文件中预定义此列表。可以在这个答案中看到详细信息: