Maven多模块项目如何排除指定子模块构建?
Maven构建时排除子模块B的几种实用方法
嗨,这问题我熟!Maven里要跳过指定子模块构建,有几个靠谱的方案,你可以根据场景选:
1. 命令行直接指定排除(最常用)
直接在执行mvn install时通过-pl参数排除子模块B,语法是用!标记要排除的模块:
# 排除单个模块B mvn install -pl "!B" # 也可以明确指定要构建的模块A和C(效果一致) mvn install -pl "A,C"
注意:如果模块名称包含特殊字符,或者在Windows系统下,记得给模块列表加引号避免解析错误。如果需要同时构建指定模块的依赖模块,可以搭配
-am参数(即Also Make,会自动构建目标模块的依赖项)。
2. 通过Profile配置(适合重复使用场景)
如果需要频繁排除模块B,可以在父pom.xml里添加一个自定义Profile,指定只构建A和C:
<profiles> <profile> <id>exclude-b</id> <modules> <module>A</module> <module>C</module> </modules> </profile> </profiles>
之后每次需要排除B时,只需激活这个Profile即可:
mvn install -P exclude-b
这种方法不用每次输入长命令,适合重复执行的场景。
3. 临时注释父pom的模块声明(不推荐)
如果只是临时测试,也可以直接把父pom.xml里的<module>B</module>注释掉,再执行mvn install。但这个方法需要修改文件,很容易忘记恢复,所以只适合临时应急用。
内容的提问来源于stack exchange,提问作者Vinodkumar reddy
相关产品推荐
相关产品推荐

