Hi, simply declare the dependency with scope "provided" in the project that shades it.
Regards, Jörg On Fritday, 8. July 2022, 17:43:16 CEST Francois Marot wote: > Hello Niels, > > I believe you used the shade maven plugin or equivalent. I faced this > problem multiple times and to my knowledge, there is no "good" solution. > The problem is that Maven computes the dependency graph for all modules of > the reactor right at the start. But when the shade plugin integrates ANTLR > inside your library, this library should not depend onto ANTLR anymore. But > because the dependency graph was computed at the start, > other modules of the reactor depending onto your library still depend onto > ANTLR even if there is already a shaded version of ANTLR inside your > library. > > So in the end, in the same reactor execution, module MUST NOT depend onto a > shaded module. They must be considered as 'final' modules. > > I hope this may help > François > > > *- - - - -François Marot06 50 91 96 38* > > Le ven. 8 juil. 2022 à 16:51, Niels Basjes <ni...@basjes.nl> a écrit : > > Hi, > > > > I have a library project that uses dependencies that are prone to cause > > conflicts when another project wants to use my software. > > Antlr4 is a common example because it enforces the versions of the > > generated code and the runtime to be an exact match. > > > > In my maven project I have a main library and to avoid conflicts in > > downstream applications the antlr4-runtime has been shaded and relocated > > to > > a different package name. > > Using this modified jar in any project works as expected. > > > > When I want to use this in a different maven module of the same project it > > does not work like that. > > In my multi module maven project I found that the other modules (UDFs, > > demo > > webservlet, etc) use the unshaded variant of the library, which sometimes > > causes conflicts. > > I think this is how the maven reactor is intended to work. > > > > Essentially I think I want to have the option to make a specific module of > > my project be built as-if it is an external project (i.e. "outside" the > > reactor). > > > > So far I have only found the invoker plugin to be a way to make this > > happen. > > > > What is the recommended way to handle this? > > > > -- > > Best regards / Met vriendelijke groeten, > > > > Niels Basjes --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org