You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brett Porter (JIRA)" <ji...@codehaus.org> on 2008/06/13 04:38:12 UTC

[jira] Closed: (MNG-3528) Order of executing plugins in maven 2.0.9

     [ 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