Daniel Heinrich created MNG-6288:
------------------------------------

             Summary: Metadata for Dependency Management Entries
                 Key: MNG-6288
                 URL: https://issues.apache.org/jira/browse/MNG-6288
             Project: Maven
          Issue Type: New Feature
          Components: Design, Patterns & Best Practices
            Reporter: Daniel Heinrich
            Priority: Minor


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:
{code:xml}
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.4.0</version>
    <overwrite>1.3.0,1.3.2</overwrite>
</dependency>
{code}

or more generic:

{code:xml}
<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>
{code}

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.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to