-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
[MNG-8295] Dependency Manager Transitivity (now default) handles dependency management inconsistently #1788
Conversation
Two failing ITs:
|
I see you have now disabled Regarding The thing is, Changing the test to run with
For some reason however, this does not cause the build to fail on 4.0.0-beta-4 or the current master, but it does with the It’s getting late so I’ll stop my investigations for today, but I put the test ouptut (with full stacktrace at the end) as a gist here. |
With a fresh mind, the answer is quite simple: 😅
So this change is perfectly expected – and I think it makes sense that, if Spotless requests I wanted to propose to add With or without the change, Back in the Basically, GJF says “those dependencies are optional” (this is kinda incorrect, actually, since it has a strong dependency on Guava, so they are actually mandatory), but if you include them (which will thus always be the case), I need these versions”. Here again, in my opinion, Neither dependency manager takes the same versions of the 2 offending dependencies when doing resolution for Palantir and GJF, so I don’t think we should try to fix that now – it might actually be a bug in Spotless if the classpath of the two is merged. The nasty trick is that Spotless 2.40 runs as part of Core ITs build, before any integration test runs. This causes the Spotless dependencies decided by TL;DRTo make it work with
As a side note, the error you get when a plugin dependency fails to download such dynamic dependencies is particularly unclear, as it never says which |
…ndency management inconsistently Actually use TransitiveDependencyManager when maven.resolver.dependencyManagerTransitivity=true
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coolio!
IT PR: apache/maven-integration-testing#384
JIRA issue: MNG-8295
From @DidierLoiseau
Actually use TransitiveDependencyManager when maven.resolver.dependencyManagerTransitivity=true, instead of ClassicDependencyManager(true, …) as per #1357.
This fixes MNG-8295 and the integration tests proposed in apache/maven-integration-testing#384.
I thought that, since the change is trivial, it doesn’t cost much to create a PR for it already – even if the consensus turns out to be something else in the end.
Supersedes #1785 to align branch names