Details
-
New Feature
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
You will have a lot of version conflicts of transitive dependencies in a normal project. These conflicts will get resolved by maven automatically, but most of the time you want your team to explicitly decide on the conflict resolution.
This decision has to be placed in the dependency management section.
Over time dependencies change and therefor their transitive dependencies too. The problem is now, that while out decisions(in form of dependency management entries) stay the basis of the past decisions have changed.
There is no automatic way at the moment to check for dependency management entries which need to be updated, because the conflict they try to resolve has changed.
I propose to add the option to add some kind of meta data to dependency management entries, which can be used by some plugin to report on decisions which have to be reworked.
An example could be:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.4.0</version> <overwrite>1.3.0,1.3.2</overwrite> </dependency>
or more generic:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.4.0</version> <attributes> <overwrite>1.3.0,1.3.2</overwrite> <other-comment>...</other-comment> </attributes> </dependency>
I hope this will spark some sort of discussion, because I think Maven can still do a lot to support changes to a project over time way better.