[jira] [Commented] (MNG-4975) [regression] plugin executions injected from profile run before instead of after existing executions in the POM
[ https://issues.apache.org/jira/browse/MNG-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17623431#comment-17623431 ] Garret Wilson commented on MNG-4975: I'm reading through all the past bugs, and I'm a little confused. 1. So is it guaranteed that the plugins of a _profile_ at a certain level will always be executed _after_ the same plugins (but different execution IDs) in the main build at the same level? Is this documented somewhere? 2. {quote}Note that in an inheritance chain child executions are always done after parent executions{quote} But a comment in MNG-5799 seems to say exactly the opposite: {quote}Seems Parent POM bindings execute AFTER child bindings. I would think it would be the other way around. I am working around this by binding to the NEXT phase in the child, but I would like clarity on this. Should the child binding execute after the parent binding?{quote} What is the correct answer for #2, and is that documented somewhere, too? (I realize there is a ticket MNG-5987 for documenting this, but that's not going anywhere after six years or so.) > [regression] plugin executions injected from profile run before instead of > after existing executions in the POM > --- > > Key: MNG-4975 > URL: https://issues.apache.org/jira/browse/MNG-4975 > Project: Maven > Issue Type: Bug > Components: Plugins and Lifecycle >Affects Versions: 3.0, 3.0.1, 3.0.2 > Environment: I reproduced the problem with maven 3.0, 3.0.1 and > 3.0.2. It doesn't exist in 2.2.1 > MacOS 1.6 JVM >Reporter: Arnaud Heritier >Assignee: Benjamin Bentmann >Priority: Major > Fix For: 3.0.3 > > Attachments: pom.xml > > > Let's imagine we have a lifecycle phase where we want to bind several mojos. > We want to force the order of execution of our mojos in this phase thus we > use ordered execution IDs (00exec, 01exec, ...). > In project's build part we define 00exec, 01exec, 02exec > In a profile #1 we define 03exec,04exec > In a profile #2 we define 05exec,06exec > If I execute my build without profiles I want to see the execution of > 00->01->02 > If I activate profile #1 I want to see the execution of 00->01->02->03->04 > If I activate profile #2 I want to see the execution of > 00->01->02->03->04->05->06 > This the behavior we have in Maven 2.X. Any combinaison of profiles will > ensure executions are ordered following IDs order > In Maven 3.x it is no more the case. > Without profile we have 00->01->02 (GREAT) > With Profile 1 activate we have : 03->04->00->01->02 ( :( ) > With Profile 1 & 2 activate we have : 05->06->03->04->00->01->02 ( :( ) > I attach a simple testcase with an antrun to show the problem. > Just play with {{mvn package}} and profiles {{profile1}} & {{profile2}} > Note that the order depends also of the order of profiles declaration in the > POM in M3 > If profile1 is defined before profile 2 I have 05->06->03->04->00->01->02 > If profile2 is defined before profile 1 I have 03->04->05->06->00->01->02 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] Commented: (MNG-4975) [regression] plugin executions injected from profile run before instead of after existing executions in the POM
[ http://jira.codehaus.org/browse/MNG-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=251657#action_251657 ] Arnaud Heritier commented on MNG-4975: -- Ok, thus for readers I confirm Benjamin's assertion. I misunderstood the order of plugin executions inside a phase : They have to follow the order in the POM. Thus if I put profile 2 before profile 1, with maven 2.X and both profiles activated I have 00->01->02->05->06->03->04 Thus there is a bug in Maven 3, in my sample build executions (00,01,02) should always be executed before profiles executions but it won't follow execution IDs (they could be 46, 32, 57) Note that in an inheritance chain child executions are always done after parent executions > [regression] plugin executions injected from profile run before instead of > after existing executions in the POM > --- > > Key: MNG-4975 > URL: http://jira.codehaus.org/browse/MNG-4975 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Plugins and Lifecycle >Affects Versions: 3.0, 3.0.1, 3.0.2 > Environment: I reproduced the problem with maven 3.0, 3.0.1 and > 3.0.2. It doesn't exist in 2.2.1 > MacOS 1.6 JVM >Reporter: Arnaud Heritier > Attachments: pom.xml > > > Let's imagine we have a lifecycle phase where we want to bind several mojos. > We want to force the order of execution of our mojos in this phase thus we > use ordered execution IDs (00exec, 01exec, ...). > In project's build part we define 00exec, 01exec, 02exec > In a profile #1 we define 03exec,04exec > In a profile #2 we define 05exec,06exec > If I execute my build without profiles I want to see the execution of > 00->01->02 > If I activate profile #1 I want to see the execution of 00->01->02->03->04 > If I activate profile #2 I want to see the execution of > 00->01->02->03->04->05->06 > This the behavior we have in Maven 2.X. Any combinaison of profiles will > ensure executions are ordered following IDs order > In Maven 3.x it is no more the case. > Without profile we have 00->01->02 (GREAT) > With Profile 1 activate we have : 03->04->00->01->02 ( :( ) > With Profile 1 & 2 activate we have : 05->06->03->04->00->01->02 ( :( ) > I attach a simple testcase with an antrun to show the problem. > Just play with {{mvn package}} and profiles {{profile1}} & {{profile2}} > Note that the order depends also of the order of profiles declaration in the > POM in M3 > If profile1 is defined before profile 2 I have 05->06->03->04->00->01->02 > If profile2 is defined before profile 1 I have 03->04->05->06->00->01->02 -- 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
[jira] Commented: (MNG-4975) [regression] plugin executions injected from profile run before instead of after existing executions in the POM
[ http://jira.codehaus.org/browse/MNG-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=251653#action_251653 ] Arnaud Heritier commented on MNG-4975: -- thus it is impossible with this rule to sort them across profiles ? .. and it worked with maven2. Thus if consider it is specification and note a bug we have to document this change. WDYT ? > [regression] plugin executions injected from profile run before instead of > after existing executions in the POM > --- > > Key: MNG-4975 > URL: http://jira.codehaus.org/browse/MNG-4975 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Plugins and Lifecycle >Affects Versions: 3.0, 3.0.1, 3.0.2 > Environment: I reproduced the problem with maven 3.0, 3.0.1 and > 3.0.2. It doesn't exist in 2.2.1 > MacOS 1.6 JVM >Reporter: Arnaud Heritier > Attachments: pom.xml > > > Let's imagine we have a lifecycle phase where we want to bind several mojos. > We want to force the order of execution of our mojos in this phase thus we > use ordered execution IDs (00exec, 01exec, ...). > In project's build part we define 00exec, 01exec, 02exec > In a profile #1 we define 03exec,04exec > In a profile #2 we define 05exec,06exec > If I execute my build without profiles I want to see the execution of > 00->01->02 > If I activate profile #1 I want to see the execution of 00->01->02->03->04 > If I activate profile #2 I want to see the execution of > 00->01->02->03->04->05->06 > This the behavior we have in Maven 2.X. Any combinaison of profiles will > ensure executions are ordered following IDs order > In Maven 3.x it is no more the case. > Without profile we have 00->01->02 (GREAT) > With Profile 1 activate we have : 03->04->00->01->02 ( :( ) > With Profile 1 & 2 activate we have : 05->06->03->04->00->01->02 ( :( ) > I attach a simple testcase with an antrun to show the problem. > Just play with {{mvn package}} and profiles {{profile1}} & {{profile2}} > Note that the order depends also of the order of profiles declaration in the > POM in M3 > If profile1 is defined before profile 2 I have 05->06->03->04->00->01->02 > If profile2 is defined before profile 1 I have 03->04->05->06->00->01->02 -- 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