You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Joerg Schaible (JIRA)" <ji...@codehaus.org> on 2005/11/15 15:03:06 UTC

[jira] Created: (MNG-1577) dependencyManagent does not work for transient dependencies

dependencyManagent does not work for transient dependencies
-----------------------------------------------------------

         Key: MNG-1577
         URL: http://jira.codehaus.org/browse/MNG-1577
     Project: Maven 2
        Type: Bug
  Components: maven-core  
    Versions: 2.0    
    Reporter: Joerg Schaible


The dependencyManagement does not work for transient dependencies. The specified version is ignored.

Use case:
Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
Project B is child of Main and depends directly on commons-digester (version inherited from Main)
Project C is child of Main and depends directly on A & B (versions inherited from Main)

A is compiled and tests are run using commons-beanutils-1.7.0
B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
C is compiled and tests are run using commons-beanutils-1.7.0

Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.

If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.

- Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Ralph Goers (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_59632 ] 

Ralph Goers commented on MNG-1577:
----------------------------------

Can you provide a link to the original discussion?  I just cannot see how this behavior can be tolerated.  Since almost every dependency at ibiblio is going to have transitive dependencies with versions in them not fixing this will effectively make transitive dependencies useless as most projects will end up with multiple versions of the same jars in them.

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug

>   Components: Artifacts and Repositories
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.4

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Joerg Schaible (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_51498 ] 

Joerg Schaible commented on MNG-1577:
-------------------------------------

Well, with M1 we used entities to ensure global version consistency among different projects. For M2 the dependencyManagement was presented as solution for this. If it is not DM, what can we use else?

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug
>   Components: maven-artifact
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.1

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Updated: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-1577?page=all ]

Brett Porter updated MNG-1577:
------------------------------

    Fix Version: 2.0.1
      Component:     (was: maven-core)
                 maven-artifact

I think we determined this wasn't the behaviour that would be used (depMgmt only applying to the current project and inheritence) - need to review and confirm then close as won't fix, or fix for 2.0.1 if I'm wrong.

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug
>   Components: maven-artifact
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.1

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Updated: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "John Casey (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-1577?page=all ]

John Casey updated MNG-1577:
----------------------------

    Fix Version:     (was: 2.0.3)
                 2.0.4

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug

>   Components: Artifacts and Repositories
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.4

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Carlos Sanchez (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_51559 ] 

Carlos Sanchez commented on MNG-1577:
-------------------------------------

I think I agree too

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug
>   Components: maven-artifact
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.1

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Joerg Schaible (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_59636 ] 

Joerg Schaible commented on MNG-1577:
-------------------------------------

This depends. Think of jBoss with its unified classloader and an ear with two integrated wars. If each war has a dependency with a different version, both dependend jars will be in the classpath. It is pure coincidence which one is taken. This issue is therefore our showstopper in M102 to M2 migration.

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug

>   Components: Artifacts and Repositories
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.4

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Carlos Sanchez (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_59634 ] 

Carlos Sanchez commented on MNG-1577:
-------------------------------------

> "most projects will end up with multiple versions of the same jars in them."
That's wrong. What can happen is that different projects will use different versions of the dependencies, but one project always uses one and only one version

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug

>   Components: Artifacts and Repositories
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.4

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Commented: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
    [ http://jira.codehaus.org/browse/MNG-1577?page=comments#action_51499 ] 

Brett Porter commented on MNG-1577:
-----------------------------------

I think I agree, as otherwise its just including the dependency falsely to ensure it is managed - just need to check the original discussion.

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug
>   Components: maven-artifact
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.1

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Updated: (MNG-1577) dependencyManagent does not work for transient dependencies

Posted by "John Casey (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-1577?page=all ]

John Casey updated MNG-1577:
----------------------------

    Fix Version:     (was: 2.0.1)
                 2.0.2

> dependencyManagent does not work for transient dependencies
> -----------------------------------------------------------
>
>          Key: MNG-1577
>          URL: http://jira.codehaus.org/browse/MNG-1577
>      Project: Maven 2
>         Type: Bug
>   Components: Artifacts and Repositories
>     Versions: 2.0
>     Reporter: Joerg Schaible
>      Fix For: 2.0.2

>
>
> The dependencyManagement does not work for transient dependencies. The specified version is ignored.
> Use case:
> Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
> Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
> Project B is child of Main and depends directly on commons-digester (version inherited from Main)
> Project C is child of Main and depends directly on A & B (versions inherited from Main)
> A is compiled and tests are run using commons-beanutils-1.7.0
> B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
> C is compiled and tests are run using commons-beanutils-1.7.0
> Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
> If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.
> - Jörg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org