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