如何通过Maven CLI使用通配符排除子模块?
Maven CLI通配符排除子模块的可行方案
Maven的-pl(--projects)参数在使用通配符排除时,不能直接单独使用!**modules,因为它需要先明确包含的基础范围,再执行排除逻辑。以下是可行的解决方案:
基础排除命令:先指定包含根项目及所有子模块(用
.表示),再叠加通配符排除规则:mvn clean install -pl .,!**modules这里
.代表当前根项目及其所有子模块,!**modules会匹配并排除所有路径中包含modules的子模块(例如名为modules的直接子模块,或嵌套在其他模块下的xxx/modules/yyy这类子模块)。多模式排除:如果需要排除多个匹配模式的子模块,用逗号分隔多个排除规则即可:
mvn clean install -pl .,!**modules,!**test-modules
关键逻辑说明
Maven处理-pl参数时,遵循「先包含、后排除」的顺序。如果只写排除规则而没有指定包含范围,Maven默认的包含范围(所有模块)不会和通配符排除规则正确联动,导致排除失效。必须先明确包含的范围(比如.或具体父模块路径),通配符排除才能生效。
内容的提问来源于stack exchange,提问作者employee
相关产品推荐
相关产品推荐

