Hi Niels,

I don't see an existing resource transformer for module-info
https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

Did you see this?
https://stackoverflow.com/a/58097561/2746335

Delany

On Tue, 12 Apr 2022 at 11:16, Niels Basjes <ni...@basjes.nl> wrote:

> Thanks.
>
> I was hoping for a "native" Java solution instead of an (apparently
> necessary) external plugin that hacks this in.
>
> Niels
>
> On Mon, Apr 11, 2022 at 11:32 PM Daniel B. Widdis <wid...@gmail.com>
> wrote:
>
> > > My question is what is the correct/preferred/recommended way to do
> this?
> >
> > Not combine shading and JPMS! :-)
> >
> > But seriously.  Have a look at Moditect.  It has the capability of
> adding a
> > module-descriptor to a JAR after the fact, and may suit your needs.  I
> > honestly can't think of any other sane way to go about this.
> >
> > moditect/moditect: Tooling for the Java Module System (github.com)
> > <https://github.com/moditect/moditect>
> >
> >
> >
> >
> > On Mon, Apr 11, 2022 at 1:29 PM Niels Basjes <ni...@basjes.nl> wrote:
> >
> > > Hi,
> > >
> > > I have a project ( https://yauaa.basjes.nl/ ) which is a library that
> is
> > > used by others as a dependency.
> > > My project uses (among other things) Antlr4 as a building block.
> > > Antlr4 is a code generator that is (rightfully) very strict about the
> > > Antlr4-runtime version available at runtime: they must be identical
> > > versions.
> > >
> > > I do not want to impose "my" Antlr4 version onto the users of my
> library
> > so
> > > I have shaded and relocated the correct Antlr4 version into my final
> jar.
> > > Now anyone can use it next to a different Antrl4 version in the same
> > > application without any conflicts.
> > >
> > > Entering JPMS...
> > >
> > > I'm trying to make my library as "JPMS" as possible.
> > >
> > > From what I understand at this time: when I shade some dependencies
> into
> > my
> > > final jar the modules-info is removed by the maven-shade-plugin as this
> > > would break everything.
> > >
> > > In general I agree with this; yet in my case all of the shaded
> > > dependencies:
> > > 1) Have been relocated to a new package that does not exist anywhere
> > else (
> > > nl.basjes.shaded.<original> ).
> > > 2) None of these should be visible outside the module.
> > >
> > > So in my mind these classes are modified to become "my" classes as they
> > are
> > > moved to my namespace and I expect them to fall under similar rules as
> > the
> > > classes I have created.
> > >
> > > Yet I have not yet been successful in making all of this work.
> > >
> > > My question is what is the correct/preferred/recommended way to do
> this?
> > >
> > > --
> > > Best regards / Met vriendelijke groeten,
> > >
> > > Niels Basjes
> > >
> >
> >
> > --
> > Dan Widdis
> >
>
>
> --
> Best regards / Met vriendelijke groeten,
>
> Niels Basjes
>

Reply via email to