I find the arguments by Plamen very convincing. As a user I would look for
that configuration where I previously did the same thing when it ended up
in the Manifest: in the config of the jar plugin.
I wouldn't expect to suddenly switch to the shade plugin to be able to
define the main class or the module version.

But in the end both m-shade-p and m-jar-p might need those capabilities.

And just to check: the compiler-plugin is not the right spot for that? Or
the resources plugin to extend the module-info.java before compiling? Nah,
that sounds too far off.


Robert Scholte <rfscho...@apache.org> schrieb am Mi. 23. Aug. 2017 um 11:16:

> On Wed, 23 Aug 2017 08:11:35 +0200, Plamen Totev
> <plamen.iv.to...@gmail.com> wrote:
>
> > On Tue, Aug 22, 2017 at 11:03 PM, Robert Scholte <rfscho...@apache.org>
> > wrote:
> >>
> >>
> >> The maven-shade-plugin has the ability to re-package a jar and
> >> manipulate any type of file, including class files. The best example is
> >> relocation, where you give a set of classes a different package to
> >> prevent potential class collisions when the original dependency
> >> (probably with other version) is added again.
> >> So this is a good match for the module-info.class adjustments.
> >>
> >
> > Thank you for the detailed explanation. Initially I thought that if
> > this is not part of the jar plugin then the transformation should
> > happen before its execution(similar to the MANFEST.MF). Now on second
> > thought it also sounds logical to be done after. But still - isn't the
> > shade plugin supposed to be used for "uber jars" (at least its primary
> > purpose)? Correct me if I'm wrong, but its only target will create a
> > "uber jar". What if I want to set the module version but without
> > changing the rest of the jar? A configuration or new target will solve
> > this issue, but as a user of the plugin I think it would change its
> > purpose. And there is nothing wrong with that of course .
>
> You can choose which artifacts should be included/excluded from the
> uber-jar. By default it'll select all, which means you must do quite some
> extra configuration just to set the main-class and module-version.
> Another downside is that the maven-shade-plugin is probably not the plugin
> one would expect to use to achieve this.
>
> >
> > Also another important question for me. Do you think that other types
> > of packaging will benefit from setting the module version as well? I
> > mean not only now but in future as well. Some of the EE packaging
> > types for example.
> >
> > ---------------------------------------------------------------------
> > 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
>
>

Reply via email to