[ 
http://jira.codehaus.org/browse/MNG-3528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brett Porter closed MNG-3528.
-----------------------------

      Assignee: Brett Porter
    Resolution: Duplicate

> Order of executing plugins in maven 2.0.9
> -----------------------------------------
>
>                 Key: MNG-3528
>                 URL: http://jira.codehaus.org/browse/MNG-3528
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>    Affects Versions: 2.0.9
>         Environment: Maven 2.0.9
>            Reporter: David Bernhard
>            Assignee: Brett Porter
>            Priority: Minor
>         Attachments: 209test.zip
>
>
> Suppose you include a plugin like this:
> <plugin>
>       <groupId>my.bug.test</groupId>
>       <artifactId>plugin</artifactId>
>       <version>1.0</version>
>       <executions>
>               <execution>
>                       <id>first</id>
>                       <phase>compile</phase>
>                       <goals>
>                               <goal>first</goal>
>                       </goals>
>               </execution>
>       </executions>
> </plugin>
> <plugin>
>       <groupId>my.bug.test</groupId>
>       <artifactId>plugin</artifactId>
>       <version>1.0</version>
>       <executions>
>               <execution>
>                       <id>second</id>
>                       <phase>compile</phase>
>                       <goals>
>                               <goal>second</goal>
>                       </goals>
>               </execution>
>       </executions>
> </plugin>
> Then SECOND will execute before FIRST. The reason is in 
> ModelUtils.java:MergePluginDefinitions the new definition is passed as parent 
> and the old as child - and the parent comes first in the merged executions.
> However, this works correctly:
> <plugin>
>       <groupId>my.bug.test</groupId>
>       <artifactId>plugin</artifactId>
>       <version>1.0</version>
>       <executions>
>               <execution>
>                       <id>both</id>
>                       <phase>test</phase>
>                       <goals>
>                               <goal>first</goal>
>                               <goal>second</goal>
>                       </goals>
>               </execution>
>       </executions>
> </plugin>
> I have included a tiny test case that demonstrates this. Here's my output:
> [INFO] [compiler:compile]
> [INFO] No sources to compile
> [INFO] [:second {execution: second}]
> SECOND
> [INFO] [:first {execution: first}]
> FIRST
> [INFO] [resources:testResources]
> [INFO] Using default encoding to copy filtered resources.
> [INFO] [compiler:testCompile]
> [INFO] No sources to compile
> [INFO] [surefire:test]
> [INFO] No tests to run.
> [INFO] [:first {execution: both}]
> FIRST
> [INFO] [:second {execution: both}]
> SECOND

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to