Le mar. 5 août 2025 à 11:38, Tamás Cservenák <ta...@cservenak.net> a écrit :

> Howdy,
>
> So many wrong informations:
> - super POM does not contains plugin versions
>
> https://github.com/apache/maven/blob/master/impl/maven-impl/src/main/resources/org/apache/maven/model/pom-4.0.0.xml
> - maven does not have a notion of "external" (vs "internal"?) plugins
> - lifecycle is the one defining plugin versions
>
> https://github.com/apache/maven/blob/master/impl/maven-core/src/main/java/org/apache/maven/lifecycle/providers/packaging/AbstractLifecycleMappingProvider.java
> - plugins not on lifecycle are NOT "locked" even with lifecycle, this
> means they are being resolved to "latest" (ie m-assembly-p), and if
> there is a release between now and tomorrow, your unlocked build will
> pick up latest (and every time it happens)
>
> This is all just so wrong and proven to be wrong.
>
> And in fact, I'd go step further:
> - why is maven carrying lifecycles? Lifecycles should be in some
> extension (with version of it only in Maven, resolved on first run)
> - this would allow us to completely detach it from Maven Core
>

Agreed,  there was a plan to externalize the lifecycles afaik.  Not sure
where we stand right now... but it would be worth continuing the effort
imho.


>
>
> T
>
> On Tue, Aug 5, 2025 at 11:11 AM Romain Manni-Bucau
> <rmannibu...@gmail.com> wrote:
> >
> > This is the point, super pom is hardcoded and already there so as soon
> you
> > want to be deterministic you do lock maven version and transitively
> default
> > plugins.
> >
> > Side note: external plugins should be locked and are almost by design,
> this
> > is fine, what is broken is the behavior for default lifecycles only.
> >
> > Also agree security changed...but locking doesn't help at all there since
> > the version is locked even when implicit, just tied to maven.
> >
> > So there is no pro to lock default plugins technically, only cons.
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://x.com/rmannibucau> | .NET Blog
> > <https://dotnetbirdie.github.io/> | Blog <https://rmannibucau.github.io/>
> | Old
> > Blog <http://rmannibucau.wordpress.com> | Github
> > <https://github.com/rmannibucau> | LinkedIn
> > <https://www.linkedin.com/in/rmannibucau> | Book
> > <
> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064
> >
> >
> >
> > Le mar. 5 août 2025 à 09:07, Matthias Bünger <mbuen...@apache.org> a
> écrit :
> >
> > > Morning,
> > >
> > > I'm totally with Tamás. We should, I would even say: we have to, keep
> > > version locking a thing. Times, developer experience and security
> > > concerns have changed a lot over the past 20 years and droping locking
> > > is a bad and big step back from my point of view.
> > >
> > > We also have to keep in mind that the majority of users and most of the
> > > devs who are the "build managers/POM maintainers" at their teams don't
> > > know the enforcer plugin. And I keep my point that such important
> things
> > > should be default by Maven nowaday and not a not-so-known best
> > > practices. This said the validation message should a) make clear why
> > > version locking is important and b) it would be great if it also offers
> > > a command to automatically fix it. I could imagine that the Maven
> > > Upgrade Tool could help (Maven 4 users) a lot here.
> > >
> > > We could also  think about adding core plugins to a plugin management
> > > section in Maven Super POM - however this only helps a bit in terms of
> > > non-core-plugins.
> > >
> > > Matthias
> > >
> > > Am 05.08.2025 um 00:00 schrieb Tamás Cservenák:
> > > > So to recap: you want to drop a "best practice" (in effect since
> 2009) as
> > > > it is "too much typing" (adding plugin mgmt), and make solution
> instead
> > > to
> > > > use enforcer and make given project buildable by only one single
> maven
> > > > version. Am I correct?
> > > >
> > > > Silly.
> > > >
> > > > On Mon, Aug 4, 2025, 22:48 Romain Manni-Bucau <rmannibu...@gmail.com
> >
> > > wrote:
> > > >
> > > >> Le lun. 4 août 2025 à 22:44, Tamás Cservenák <ta...@cservenak.net>
> a
> > > >> écrit :
> > > >>
> > > >>> Howdy,
> > > >>>
> > > >>> locking the plugin versions is considered (and communicated) as
> "best
> > > >>> practice" since 2009 (since Maven 3 appeared).
> > > >>>
> > > >> And the warning just makes it obvious everyone uses it ;)
> > > >>
> > > >>
> > > >>> Otherwise, you get plugin versions that are coming from the
> lifecycle
> > > >>> in the _used_ maven version, and if you use one version, and
> somebody
> > > >>> else some other version, plugins versions are mixed up. Moreover,
> we
> > > >>> still have "fairly recent" Maven versions that are running 2.x
> plugins
> > > >>> (!)
> > > >>>
> > > >> The same best practises likely references the fact that if you want
> to
> > > >> protect yourself from that feature you use maven enforcer and
> actually
> > > lock
> > > >> maven.
> > > >> This is why I explained in my original post that version locking
> doesn't
> > > >> solve the problem you described way better than me, only locking
> > > versions
> > > >> including maven does and once done the problem disappears.
> > > >>
> > > >>
> > > >>> So you want to undo the best practice that was communicated since
> 2009?
> > > >>>
> > > >> When it is not adopted and wrong why not?
> > > >>
> > > >>
> > > >>> Thanks
> > > >>> T
> > > >>>
> > > >>> On Mon, Aug 4, 2025 at 10:39 PM Romain Manni-Bucau
> > > >>> <rmannibu...@gmail.com> wrote:
> > > >>>> Hi all,
> > > >>>>
> > > >>>> We discussed multiple times the plugin version locking but it is
> an
> > > >> issue
> > > >>>> for the ones involved in the default lifecycle since now when you
> > > >> create
> > > >>> a
> > > >>>> new project you need 50 lines to lock versions (from my window the
> > > >>>> convention over configuration became a configuration over
> > > >> anything)...and
> > > >>>> then you locked versions so upgrading maven is harder than it was
> by
> > > >> the
> > > >>>> past.
> > > >>>>
> > > >>>> There is a debate between:
> > > >>>>
> > > >>>> 1 we need to lock version to get the build deterministic
> > > >>>> 2 we shouldn't lock versions and stay aligned on the defaults
> within
> > > >>> maven
> > > >>>> 1 is quite wrong since it also implicitly assume you do not
> change the
> > > >>>> maven version (otherwise it just doesnt work for the same reason
> you
> > > >> want
> > > >>>> to lock plugin versions) but 2 is not 100% perfect since it can
> hide
> > > >> the
> > > >>>> fact you do use another version.
> > > >>>>
> > > >>>> However we are lucky and have enforcer plugin which does solves
> it.
> > > >>>>
> > > >>>> So I wonder if we should revert the version locking warning when
> pom
> > > is
> > > >>>> without any build section for default plugins.
> > > >>>>
> > > >>>> I know a custom extensions can somehow replace a super pom and
> kind of
> > > >>>> solve it but you still need to define it which is still undesired
> to
> > > >>> have a
> > > >>>> proper default "convention" setup IMHO.
> > > >>>>
> > > >>>> Romain Manni-Bucau
> > > >>>> @rmannibucau <https://x.com/rmannibucau> | .NET Blog
> > > >>>> <https://dotnetbirdie.github.io/> | Blog <
> > > >> https://rmannibucau.github.io/>
> > > >>> | Old
> > > >>>> Blog <http://rmannibucau.wordpress.com> | Github
> > > >>>> <https://github.com/rmannibucau> | LinkedIn
> > > >>>> <https://www.linkedin.com/in/rmannibucau> | Book
> > > >>>> <
> > > >>
> > >
> https://www.packtpub.com/en-us/product/java-ee-8-high-performance-9781788473064
> > > >>>
> ---------------------------------------------------------------------
> > > >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > >>> For additional commands, e-mail: dev-h...@maven.apache.org
> > > >>>
> > > >>>
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >
> > >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

-- 
------------------------
Guillaume Nodet

Reply via email to