-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
The 3.x line uses the same package names as the 2.x line.
This causes issues where a library uses 2.x and another one uses 3.x and you want to use them both in an application.
Ideally when breaking changes (on a rare occaision) the maven artifactId should be updated along with the package names.
possible solutions to this are shading the dependency in the application which would need to shade all libraries using the 2.x line in a separate maven module and then include those, but shading is an instrument of last resort.
I guess it is probably too late now - but would there be a chance of a 3.x version with different artifactId and different packages?
or abandon the 3x and jump to 4.x with this rename (which I do understand would be a pain to users who are using 3.x - but would be a one time hit and relatively easy to do with an IDE refactor)?
An example of this is usage in Jenkins plugins (and whilst we could disect Jenkins plugin classloader isolation or lack of) we where looking to replace guava due to its breakages and use caffiene as the cache replacement - but as Jenkins is currently using java8 we would use the 2.x line, but in the future we are looking to move to Java11 and at that point expect some plugins to want to start using shiny new things. e.g. jenkinsci/stapler#213