Ultimately this 100% depends on plugins.
A good example are annotation processors, you can have multiple passes in
the same module so type and scope are inaccurate (not blaming, just it
requires more effort to cover the case we cover with processor plugin
today).
Concretely the issue there is that you now require the plugins to configure
a list of (type, scope) instead of a list of types to be functional.

I'd personally prefer we assume that types and scopes as two things do not
make sense anymore in maven 4 and just keep type (or use a new name if it
helps, maybe "configuration" - joking  on this one) and keep that easy to
consume.
We can keep scope as a maven 3 compatible thing and make it obsolete in v4
poms.

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 lun. 17 mars 2025 à 11:47, Martin Desruisseaux <
martin.desruisse...@geomatys.com> a écrit :

> Le 2025-03-16 à 17 h 37, Guillaume Nodet a écrit :
>
> > I think it's time to create a branch to release Maven 4.0.0 GA in the
> > coming weeks and switch master to 4.1.0-SNAPSHOT. Thoughts ?
> >
> One element that may be adjusted before GA. Maven 4 introduced a new way
> to control where to put a JAR file, using the <type> element. There is
> currently (non exhaustive list):
>
>   * jar
>   * classpath-jar
>   * modular-jar
>   * processor
>   * classpath-processor
>   * modular-processor
>   * test-jar
>
> In a discussion with some IDE developers, it has been suggested that
> this list could be simplified with a combination of <type> and <scope>.
> For example:
>
> <type>classpath-jar</type> is implicitly (keeping in mind that the
> <scope> value is compile by default):
>
>     <type>classpath-jar</type> <scope>compile</scope>
>
> Likewise, <type>modular-jar</type> is implicitly:
>
>     <type>modular-jar</type> <scope>compile</scope>
>
> But classpath-processor could be simplified as below (reusing the
> existing classpath-jar type):
>
>     <type>classpath-jar</type> <scope>processor</scope>
>
> Likewise, modular-processor could be simplified as below (reusing the
> existing modular-jar type):
>
>     <type>modular-jar</type> <scope>processor</scope>
>
> And so on for test-jar, doclet, taglet, etc. Any though? If this
> principle is accepted, I can try to prepare a pull request. It would be
> preferable to make such change before GA.
>
>      Martin
>
>

Reply via email to