nodje
nodje

Reputation: 299

Overriding Maven plugin goal definition for a given execution id

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?

Upvotes: 6

Views: 4962

Answers (2)

Vasiliy
Vasiliy

Reputation: 348

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>

Upvotes: 12

Michael-O
Michael-O

Reputation: 18430

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.

Upvotes: 2

Related Questions