Le dim. 21 févr. 2021 à 20:39, Martin Kanters <martinkant...@apache.org> a
écrit :

> Hm, so I guess that's indeed a valid reason to keep the old functionality
> working. Thanks for the enlightenment, Romain.
> Still I think it makes more sense to make project selection recursive by
> default, but it's not straightforward to come up with a nice combination of
> flags.
> Let's summarize:
>
> 1. -pl + -N:
> While it does sound like the flag to re-use, I do not like the fact that -N
> works differently than normal when used together with -pl. The code would
> become more complex and the flag hard to explain to users.
>

Does not really solves the issue as soon as you use it for 2 different kind
of modules until it becomes -plN which is 4 IMHO


> 2. -pl + -plr:
> This gives the most flexibility, giving users the option to select
> non-recursive and recursive projects in one command. The two flags have a
> lot of overlap though, what happens when a project is selected with -pl and
> deselected with -plr, which gets precedence etc.
>

-plr without -pl, dont use a global toggle probably.

Ex: -pl parent-with-plugins -plr myaggregator -pl foo/bar -plr docker-images


> 3. -pl <proj>/*
> This gives the same flexibility as 2, but then in one command. I do like
> that, but it can get messy with shell expansion. One other thing is that
> with -pl you can select projects using the directory, but also by
> (optionally groupid and) artifactId. The star (or its replacement) could
> mean different things when used in either variant. Mind that submodules do
> not have to be placed directly in a subdirectory.
>

Other issue is maven works with not linear (tree) children so can be
complex to handle when parents or children are in other physical tree or
even projects.


> 4. (new idea) -pl + --pl-non-recursive:
> This does not have the flexibility 2 and 3 provides and we would have to
> introduce a new CLI flag. But it does have a very clear goal which is easy
> to implement + explain.
>

Hmm another global toggle? It will have the same combination issue than -N
IMHO.
So overall this sounds like reversing -pl and adding this complementary
option so 2 sounds the saner equivalent option for backward compat.


> 5. Revert all and restore 3.6.3 functionality.
> Users could build extensions or plugin functionality to achieve the
> recursiveness. Not my favorite, because I think this is something Maven
> Core should be able to provide out of the box.
>

"Extension" can be built in too, just mentionned we can solve it
differently than enriching again the cli since functionally we already
cover it.


> 6. Make recursiveness the default and do not provide a workaround for
> non-recursiveness
> Since we are going to a new major version it's acceptable to break/change
> existing behavior. We could wait until users complain and then build
> something in.
> Not my favorite (anymore) either, since apparently it's a common use-case
> that we would break.
>

Just my 2cts but sounds the worse.
Even if going major backward compat is key for not internals otherwise we
do another build tool and break everyone which is always a moment of
temptation to reject the tool, in particular when trivial to avoid from
user PoV.


> I understand the thread might've become hard to follow, so I hope this
> summary helps other people to join the discussion.
> My current favorite is 4.
>


Personally, I'd say investigate alias option and if not satistying then use
2.


> Martin
>
> Op za 20 feb. 2021 om 17:53 schreef Romain Manni-Bucau <
> rmannibu...@gmail.com>:
>
> > I like the regex idea but wildcard (*) does not work well due to common
> > shell expansion (or it already works but it is outside of maven scope to
> be
> > concrete).
> >
> > My 2cts would be that, to be honest, I think we all lead to have aliases
> in
> > maven for potentially very long commands (there was some threads about
> it),
> > CLI then just needs to enable to activate/deactivate things, not to be
> > clever and it would enable all combination without any behavior change
> nor
> > new option IMHO. Concretely "mvn alias:bd" would run "mvn -pl foo/bar -pl
> > foo/dummy" for example. Thinking out loud it can be done with a plugin
> > already so can maybe give a try if it sounds like a good idea for others
> > too.
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > >
> >
> >
> > Le sam. 20 févr. 2021 à 14:40, Falko Modler <f.mod...@gmx.net> a écrit :
> >
> > > Thanks for the quick reaction/answers!
> > >
> > > TBH, I haven't fully understood why -N cannot be used here. I do
> > > understand that -N reduces the reactor to one project (before project
> > > selection via -pl can kick in).
> > > But what if -N wouldn't be applied if -pl is present? It would then
> > become
> > > a "secondary" option, only applying to the projects selected or
> > deselected
> > > via -pl.
> > >
> > > However, the most flexible and fully backwards compatiple solution
> would
> > > indeed be something like -plr as suggested before. You could then also
> > mix
> > > and match -pl and -plr.
> > >
> > > Btw, half offtopic: I proposed [1] to add ? to -pl and in that context
> I
> > > also thought about wildcard support for -pl, but Robert didn't like the
> > > idea.
> > > I'm just thinking whether -pl foo/* might be something that could help
> > > here as well, but it wouldn't be trivial to do, I suppose.
> > > PS: -help doesn't mention ! at all.
> > >
> > > [1] https://issues.apache.org/jira/browse/MNG-6511
> > >
> > > Cheers,
> > > Falko
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > > For additional commands, e-mail: dev-h...@maven.apache.org
> > >
> > >
> >
>

Reply via email to