Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
as previously planned, we need to introduce the concepts of dependency mediation and conflict management to complement the transitive dependency mechanism.
Currently, a "nearest wins" approach is being taken which gives full control, but can result in having to re-state runtime dependencies to force a specified newer version in some instances.
An example in the m2 build is that when maven-artifact requires a newer version of wagon, it is not applied to core because plexus-artifact-container depends on an older version.
We should also only resolve a dependency once - for example, currently we build up the tree from all the versions of maven-artifact wanted, when in fact, we should decide what version of maven-artifact will be used, and use that for everything using maven-artifact before traversing to the next level. This would reduce the number of old dependencies appearing.
This will continue to make mboot less useful without replicating the feature. I suggest that we only bootstrap maven-artifact (or move it to wagon and don't bootstrap it at all), and then use it and wagon to execute mboot itself.
Attachments
Issue Links
- is related to
-
MNG-4175 Dependency mediation - allow for different strategies
- Closed
- relates to
-
MNG-4768 Depending on declaration order, nearest matching version does not win when version range is involved in conflict
- Closed
- supercedes
-
MNG-63 current pom.artifactId not detected as part of a cyclical dependency
- Closed