【发布时间】:2015-02-06 14:58:45
【问题描述】:
我使用 maven 3.2.3。
我有一个包含三层嵌套模块的多模块项目。我想构建除一个之外的所有第一级模块(及其子模块)。对于此任务,我尝试使用 -pl 选项并使用 !moduleName 指定要从构建中排除的模块。
我得到的结果是指定的模块被排除在构建之外,但该模块的子模块没有。
这是一种预期的行为,我也应该明确排除所有嵌套的子模块吗?
【问题讨论】:
我使用 maven 3.2.3。
我有一个包含三层嵌套模块的多模块项目。我想构建除一个之外的所有第一级模块(及其子模块)。对于此任务,我尝试使用 -pl 选项并使用 !moduleName 指定要从构建中排除的模块。
我得到的结果是指定的模块被排除在构建之外,但该模块的子模块没有。
这是一种预期的行为,我也应该明确排除所有嵌套的子模块吗?
【问题讨论】:
简短的回答是:是的,这是预期的行为。
记录此更改的功能请求(允许您使用 !moduleName 从构建中排除特定模块)记录在 issue MNG-5230 中。
在该请求中,有人专门询问了您正在寻找的功能:
排除嵌套模块怎么样?我尝试了这个新功能,似乎当一个顶级模块被排除时,它的嵌套模块就没有了。
答案是:
嵌套模块不被父模块排除。
看来您必须单独列出它们。
如果您总是排除相同的模块,您可以在配置文件中预定义此列表,根据需要激活或停用。这方面的细节可以在这个答案中看到:https://stackoverflow.com/a/5542779/1570834
【讨论】: