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

Reply via email to