-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document build system workarounds for the class def conflict of fastutil-core.jar and fastutil.jar #309
Comments
For example Gradle (in addition to the usual Maven mechanism of excluding a transitive dependency of a direct dependency by name) supports substituting dependencies programmatically. For example, with a bit of For example, a project with transitive dependencies onto With substitution, that dependency onto However, the API for this isn't exactly among most discoverable parts of the Gradle documentation, and implementing it can run into some Gradle quirks. |
Mmmhhh... I'm totally ignorant of build systems outside of ant, but maybe we can add something to the README that at least points to the right resurces. |
Due to interdependence between the different packages and Java's module system being very particular, splitting fastutil into separate disjoint jars is impractical. Thus, the two jars of fastutil-core.jar and fastutil.jar both currently contain some of the same classes.
Many build systems or static analysis tools will complain in this case unless the duplicate
.class
file definitions are bit-for-bit identical. Which may not be the case in situations of transitive dependencies pulling in different versions of the two jars.While there is currently a warning in the documentation to this effect, it doesn't directly help the developer solve the problem.
We should have documentation and code samples somewhere about workarounds for such conflicts for the most popular build systems.
The text was updated successfully, but these errors were encountered: