Plugins 覆盖给定执行id的Maven插件目标定义

Plugins 覆盖给定执行id的Maven插件目标定义,plugins,configuration,maven,Plugins,Configuration,Maven,似乎不可能覆盖插件执行的目标定义 假设我有一个Jetty的父配置,它定义了 <execution> <id>start-jetty</id> <phase>pre-integration-test</phase> <goals>

似乎不可能覆盖插件执行的目标定义

假设我有一个Jetty的父配置,它定义了

                    <execution>
                        <id>start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>

起动码头
预集成测试
跑
现在我想在本地为一个特定的项目实现目标

如果我尝试用替换本地项目中的父定义

                    <execution>
                        <id>start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run-exploded</goal>
                        </goals>
                    </execution>

起动码头
预集成测试
跑爆
然后我有了有效的pom

                    <execution>
                        <id>start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                            <goal>run-exploded</goal>
                        </goals>
                    </execution>

起动码头
预集成测试
跑
跑爆
我很惊讶,因为我一直认为它会覆盖

这是Maven3中的新行为吗


是否要获得一个覆盖行为而不是当前行为?

这是按设计方式进行的继承。您应该考虑从父POM中删除JIT配置,并将其放入一个配置文件中,或者尝试使用“值假”来尝试<代码> >代码>元素,并查看它是否适用于您。

< P>我发现禁用继承配置并创建一个新配置:

                    <execution>
                        <id>start-jetty</id>
                        <phase>none</phase>
                    </execution>
                    <execution>
                        <id>my-start-jetty</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run-exploded</goal>
                        </goals>
                    </execution>

起动码头
没有一个
我的出发码头
预集成测试
跑爆

了解inherited很好,但jetty plugin有一个奇怪的行为,而且,这不是我想要的,我需要继承。如果你从全局角度解释这个问题,那么更多的是关于子POM中的插件覆盖,而不是关于运行jetty本身。