Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-303

dependency mediation and conflict management

    XMLWordPrintableJSON

Details

    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

          Activity

            People

              brett Brett Porter
              brett Brett Porter
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: