开发者

Overriding Maven plugin goal definition for a given execution id

开发者 https://www.devze.com 2023-03-21 09:19 出处:网络
It doesn\'t seem to possible to override a plugin execution\'s goal definition. 开发者_运维问答Let say I have a parent config of Jetty, that defines a

It doesn't seem to possible to override a plugin execution's goal definition.

开发者_运维问答Let say I have a parent config of Jetty, that defines a

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

now I want locally for a specific project the goal run-exploded

If I try to override the parent definition in local project with

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

then I have the effective pom becomes

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

I'm surprised, as I have always thought it would override.

Is this a new behavior in Maven3 ?

Is there anyway to get an overriding behavior instead of current one?


The way I found is to disable inherited configuration and creating a new one:

                    <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>


Well this is inheritance working the way as designed. You should consider removing your jetty config from the parent pom and put it in a profile or your try the <inherited> element with value false and see if this works for you.

0

精彩评论

暂无评论...
验证码 换一张
取 消