Le samedi 8 mai 2021, 17:03:05 CEST Alexander Kriegisch a écrit :
> Nooo! I don't need extra phases, nor do I have any desire to create
> custom lifecycles, even though I know this is possible. My point was: If
> we cannot rely on a specific order when executing plugins and executions
> within them in the same phase, the logical consequence for deterministic
> behaviour would be one phase per plugin or execution. That would be
> overkill to the 5th power. My question was how to achieve reliably
> predictable ordering. That question is yet to be answered.
it is answered: you currently can't

> 
> I am afraid, just like with the last question I asked here (about the
> dependency-reduced POM ), in the end I am not going to get a conclusive
> answer and the thread will just trickle out. Or with my PR for Maven
> Shade Plugin which did not get a single reaction, even though it fixes
> an old problem, adding new functionality. But maybe I just need to be
> more patient. :-)
if you want to work with me, I'll be available on May 29th during Hack Commit 
Push to hack together on Maven
https://paris2021.hack-commit-pu.sh/#projects

Regards,

Hervé

> 
> To everyone who already replied to me, thank you so much for helping me
> understand some things better.
> 
> > Hi. In case you really need custom phases, it is possible to add them. See
> > https://github.com/raydac/mvn-finisher for an example for adding new
> > phases. But I would say this is the last resort in case no other solutions
> > work for you.
> > 
> > la 8. toukok. 2021 klo 10.40 Alexander Kriegisch
> > (alexan...@kriegisch.name)
> > 
> > kirjoitti:
> >> >> Can anybody enlighten me on what is happening here and if this
> >> >> behaviour is documented anywhere? Or is this just the "read the
> >> >> freakin' source code, pal" kind of detail?
> >> > 
> >> > order in the same phase is not expected to be guaranteed: that's a
> >> > design choice (even if "choice" is not the best term IMHO: see below).
> >> > Then there can't be any formal documentation: it's just what it is on
> >> > each Maven release (and maybe has changed over time). see
> >> > https://issues.apache.org/jira/browse/MNG-5987
> >> 
> >> IMO, that is a very unfortunate "design choice", complex situation or or
> >> not. Because if you want to order plugins, in theory you would need a
> >> separate phase for each. But phases in a lifecycle are limited.
> >> 
> >> > - impact of profile injection, and if you want to control order, key
> >> > question: in your case, do you prefer injecting profile-defined
> >> > plugins before or after?
> >> 
> >> It is not so much about what I prefer. It is about it being
> >> deterministic with clear, documented, release-stable rules. I could
> >> adjust my POM to whatever those hypothetical rules would say.
> >> 
> >> > - mix of plugins/goals and executions: in fact, we talk about plugins
> >> > order, but what you need is goal execution order. And de-facto, given
> >> > multiple goals executions are associated to one unique plugin
> >> > definition during model building
> >> 
> >> Actually, I want both, to determine the order of executions within the
> >> same phase within the same plugin as well as the execution order of
> >> sifferent plugins in the same phase. But my described use case here was
> >> the latter, i.e. the problem really is about two different plugins.
> >> 
> >> To make a long story short: My use case is a valid one, and many users
> >> face the same situation. What does the Maven team recommend? How is this
> >> to be handled in a canonical way? Just saying "you cannot rely on it"
> >> does not solve the problem.
> >> 
> >> > Le vendredi 7 mai 2021, 01:13:53 CEST Alexander Kriegisch a écrit :
> >> >> I notices an unexpected thing about plugin execution order: If I have
> >> >> several plugins running in the same phase, normally they are executed
> >> >> in
> >> >> the lexical order in which they appear in the POM. But there is a case
> >> >> in which this can change. Schematically, it looks like this:
> >> >> 
> >> >> <profiles>
> >> >> 
> >> >>   <profile P>
> >> >>   
> >> >>     <build>
> >> >>     
> >> >>       <plugins>
> >> >>       
> >> >>         <plugin A, phase X />
> >> >>       
> >> >>       </plugins>
> >> >>     
> >> >>     </build>
> >> >>   
> >> >>   </profile P>
> >> >> 
> >> >> </profiles>
> >> >> 
> >> >> <build>
> >> >> 
> >> >>   <plugins>
> >> >>   
> >> >>     <plugin B, phase X />
> >> >>   
> >> >>   </plugins>
> >> >> 
> >> >> </build>
> >> >> 
> >> >> My expectation was that the execution order in phase X would be plugin
> >> >> A, then B. This is true sometimes, depending on which build other
> >> >> profiles are active. I mean completely unrelated profiles defined in
> >> >> other Maven modules. In my specific case, without specifying any other
> >> >> profiles (P is auto-activated bases on non-existence of a file), the
> >> >> order was B, A. If I manually activated any other profile or
> >> >> de-activated a profile which otherwise would be active automatically,
> >> >> the order changed to A, B.
> >> >> 
> >> >> In my case, I had the option of moving plugin B to a later phase,
> >> >> which
> >> >> settled the issue for me, but that is not always possible.
> >> >> 
> >> >> Can anybody enlighten me on what is happening here and if this
> >> >> behaviour
> >> >> is documented anywhere? Or is this just the "read the freakin' source
> >> >> code, pal" kind of detail?
> >> > 
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> > For additional commands, e-mail: users-h...@maven.apache.org
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: users-h...@maven.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to