maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joerg Schaible (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (MNG-3696) Add explicit transitive dependencies in dependencyManagement section of pom.xml
Date Wed, 06 Aug 2008 15:02:26 GMT

    [ http://jira.codehaus.org/browse/MNG-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=144295#action_144295
] 

Joerg Schaible commented on MNG-3696:
-------------------------------------

This is not true. If you declare com.other:common in the depMgmnt as Brett advised, it will
take also precedence for transitive deps.

> Add explicit transitive dependencies in dependencyManagement section of pom.xml
> -------------------------------------------------------------------------------
>
>                 Key: MNG-3696
>                 URL: http://jira.codehaus.org/browse/MNG-3696
>             Project: Maven 2
>          Issue Type: New Feature
>          Components: Dependencies
>    Affects Versions: 2.0.9
>            Reporter: Joel Turkel
>
> Transitive dependencies cause lots of headaches and require a fair amount of manual intervention
to fix conflicts. It is common to see a pom with the following scenario:
> <dependencyManagement>
> 	<dependencies>
> 		<!-- Must manually include com.other.common when using com.sample.foo -->
> 		<dependency>
> 			<groupId>com.sample</groupId>
> 			<artifactId>foo</artifactId>
> 			<version>1</version>
> 			<exclusions>
> 				<!-- com.sample.foo includes old version 1 of com.other.common -->
> 				<exclusion>
> 					<groupId>com.other</groupId>
> 					<artifactId>common</artifactId>
> 				</exclusion>
> 			</exclusions>
> 		</dependency>	
> 		<dependency>
> 			<groupId>com.other</groupId>
> 			<artifactId>common</artifactId>
> 			<version>2</version>
> 		</dependency>
> 		<dependency>
> 			<groupId>com.sample</groupId>
> 			<artifactId>bar</artifactId>
> 			<version>3</version>
> 			<!-- com.sample.foo includes version 2 of com.other.common -->
> 		</dependency>
> 	</dependencies>
> </dependencyManagement>
> This is problematic because descendant poms must manually include the com.other.common
dependency when including the com.sample.foo dependency. The word around is creating separate
pom projects to manage the dependencies, but this doesn't do a great job of expressing intent,
leads to a proliferation of projects, and makes dependency management more difficult since
it's scattered over multiple poms. 
> Ideally users should be allowed to specify inclusions in the dependency management section
of the pom e.g. something like:
> <dependencyManagement>
> 	<dependencies>
> 		<dependency>
> 			<groupId>com.sample</groupId>
> 			<artifactId>foo</artifactId>
> 			<version>1</version>
> 			<!-- com.sample.foo includes old version 1 of com.other.common -->
> 			<exclusions>				
> 				<exclusion>
> 					<groupId>com.other</groupId>
> 					<artifactId>common</artifactId>
> 				</exclusion>
> 			</exclusions>
> 			<inclusions>
> 				<inclusion>
> 					<groupId>com.other</groupId>
> 					<artifactId>common</artifactId>
> 					<version>2</version>
> 				</inclusion>
> 			</inclusions>
> 		</dependency>
> 		<dependency>
> 			<groupId>com.sample</groupId>
> 			<artifactId>bar</artifactId>
> 			<version>3</version>
> 			<!-- com.sample.foo includes version 2 of com.other.common -->
> 		</dependency>
> 	</dependencies>
> </dependencyManagement>
>  

-- 
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

        

Mime
View raw message