You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Garret Wilson (Jira)" <ji...@apache.org> on 2022/10/24 21:41:00 UTC

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