DependencyManagment is only used for direct dependencies when you don't specify a version. Think of it as a preference. If you do specify one, then depMgt doesn't come into play.
-----Original Message----- From: Benoit Decherf [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 20, 2008 11:12 AM To: Maven Users List Subject: Re: dependencyManagement and conflicts I still don't understand the useage of dependencyManagement : * A declare a dependency on log4j [1.2.0,1.3.0) and a dependencyManagement to force on version 1.2.4 mvn dependency:resolve show that log4j 1.2.14 is resolved. * B declare a dependency on A and a dependencyManagement to force on version 1.2.4 mvn dependency:resolve show that log4j 1.2.4 So dependencyManagement surcharge the dependencies declared in the transitive dependencies but not the direct dependencies. Is it right ? So, I'd like to know when this type of conflict occurs: mvn dependency:analyze-dep-mgt -DfailBuild=true -DignoreDirect=false -X [DEBUG] (s) failBuild = false [DEBUG] (s) ignoreDirect = true [DEBUG] (s) project = MavenProject: test:A:1.0-SNAPSHOT @ /home/decherfb/tmp/depMgmt/A/pom.xml [DEBUG] -- end configuration -- [INFO] [dependency:analyze-dep-mgt] [INFO] Found Resolved Dependency / DependencyManagement mismatches: [INFO] Ignoring Direct Dependencies. [INFO] Dependency: log4j:log4j:jar [INFO] DepMgt : 1.2.4 [INFO] Resolved: 1.2.14 [INFO] None [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL Why doesn't it fail ? What is the correct way to use this plugin ? I want to include this check to the release:prepare configuration. Benoit Brian E. Fox wrote: > Yes. I think it was mng-1577 that made this intentional change. The > dependencyManagement overrides the transitive versions. > Dependency:analyze-dep-mgt can help you detect these conflicts later. > > -----Original Message----- > From: Benoit Decherf [mailto:[EMAIL PROTECTED] > Sent: Tuesday, February 12, 2008 11:21 AM > To: Maven Users List > Subject: dependencyManagement and conflicts > > Hi, > > I have 3 projects with their dependencies: > * A > |- B[1.0] > |- C [1.1] > * B > |- C [1.0] > * C > > So here there is a conflict in A for C, and this is what I'm expected: > [INFO] Failed to resolve artifact. > > The artifact has no valid ranges > test:C:jar:1.0 > > Path to dependency: > 1) test:A:jar:1.0 > 2) test:B:jar:1.0 > > > But now, if I define in A a dependencyManagement, I can force the verson > > of C and I don't have any warning about the conflict. Is this normal? > > Benoit > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
