要禁用父POM继承的插件执行,可以按如下方式覆盖它:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
Run Code Online (Sandbox Code Playgroud)
现在如果父POM没有定义显式执行ID怎么办?这个答案说"如果你没有指定id来执行,Maven会隐式地执行它(以一种你不直观的方式)." 那么Maven如何生成执行ID?用于链接相关Maven源代码的加分点.
注意:我不是在寻找禁用插件执行的替代方法.
我有以下父pom.xml文件:
<profile>
<id>build_full</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>mymodule_interface</module>
<module>mymodule_switch</module>
<module>mymodule_switch_simulator</module>
<module>mymodule_switch_controller</module>
<module>mymodule_server</module>
</modules>
</profile>
Run Code Online (Sandbox Code Playgroud)
在我的孩子pom中mymodule_server,我有以下几点:
<profile>
<id>subprofile</id>
<modules>
<module>...various modules...</module>
</modules>
</profile>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>...various modules...</module>
</modules>
</profile>
Run Code Online (Sandbox Code Playgroud)
当我调用maven:时 mvn -P build_full,我可以强制子模块(mymodule_server)使用配置文件subprofile而不是default吗?