如何在pom.xml中配置Maven自定义插件goal仅作用于根模块不触发子模块?
Maven 自定义插件仅根模块执行配置方法
可以直接在根pom.xml中完成配置,无需每次执行命令追加--non-recursive参数,核心是关闭插件配置的子模块继承属性。
配置示例
在根模块的pom.xml中找到你的自定义插件声明,添加<inherited>false</inherited>配置即可:
<project> <!-- 其余pom配置省略 --> <build> <plugins> <plugin> <!-- 替换为你的自定义插件实际groupId、artifactId、version --> <groupId>com.example</groupId> <artifactId>custom-plugin</artifactId> <version>1.0.0</version> <inherited>false</inherited> </plugin> </plugins> </build> </project>
实现原理
Maven全局执行插件goal时,会扫描所有模块中是否存在对应插件的声明,有声明的模块才会执行该goal。<inherited>false</inherited>配置会禁止子模块继承根模块的插件声明,因此只有根模块会匹配到该插件,执行对应goal,子模块会自动跳过。
注意事项
- 该配置不会影响你已有绑定到生命周期的插件执行逻辑,原生命周期阶段执行时仅根模块生效的规则保持不变
- 如果后续需要在部分子模块中单独执行该插件,只需在对应子模块的pom.xml中单独声明该插件即可,不会和根模块的配置冲突
内容的提问来源于stack exchange,提问作者sensenkri
相关产品推荐
相关产品推荐

