[ https://issues.apache.org/jira/browse/MDEP-610?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chandra Prakash updated MDEP-610: --------------------------------- Description: h3. *Overview :* The order of dependency declaration in the pom is taking precedence instead of depth. Check this sample : https://github.com/ProcrastinatorCp/maven-dependency-issue-poc h3. *Example Scenario :* There are two modules. *test-a* and *test-b* *test-a* (depends on javax.servlet-api:2.5) *test-b* (depends on test-a) I want to use 3.1.0 version of above library in test-b. However, if test-a is declared before ***javax.servlet-api*, executing *mvn clean package* fails. {code:xml} <!-- NG : Reads 2.5 version of javax.servlet-api --> <dependency> <groupId>com.cp.test</groupId> <artifactId>test-a</artifactId> <version>${com.cp.test.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> {code} If I change the ordering, it works fine. {code:xml} <!-- OK : Reads 3.1.0 version of javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version>[link title|http://example.com] </dependency> <dependency> <groupId>com.cp.test</groupId> <artifactId>test-a</artifactId> <version>${com.cp.test.version}</version> </dependency> {code} The documentation at : [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html] > the current pom's declaration takes precedence over its parent's declaration. However, current pom declaration is not taking precedence *when ordered differently* (as above pom) Could you please confirm. was: h3. *Overview :* The order of dependency declaration in the pom is taking precedence instead of depth. h3. *Example Scenario :* There are two modules. *test-a* and *test-b* *test-a* (depends on javax.servlet-api:2.5) *test-b* (depends on test-a) I want to use 3.1.0 version of above library in test-b. However, if test-a is declared before ***javax.servlet-api*, executing *mvn clean package* fails. {code:xml} <!-- NG : Reads 2.5 version of javax.servlet-api --> <dependency> <groupId>com.cp.test</groupId> <artifactId>test-a</artifactId> <version>${com.cp.test.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> {code} If I change the ordering, it works fine. {code:xml} <!-- OK : Reads 3.1.0 version of javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version>[link title|http://example.com] </dependency> <dependency> <groupId>com.cp.test</groupId> <artifactId>test-a</artifactId> <version>${com.cp.test.version}</version> </dependency> {code} The documentation at : [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html] > the current pom's declaration takes precedence over its parent's declaration. However, current pom declaration is not taking precedence *when ordered differently* (as above pom) Could you please confirm. > Dependency order : Depending on transitive version instead of declared based > on order of declaration > ---------------------------------------------------------------------------------------------------- > > Key: MDEP-610 > URL: https://issues.apache.org/jira/browse/MDEP-610 > Project: Maven Dependency Plugin > Issue Type: Bug > Environment: mvn -v > Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; > 2015-03-14T04:10:27+08:00) > Maven home: /home/cp/...../apache-maven-3.3.1 > Java version: 1.8.0_121, vendor: Oracle Corporation > Java home: /home/cp/...../oracle-jdk-1.8.0_121/jre > Default locale: en_SG, platform encoding: UTF-8 > OS name: "linux", version: "4.4.0-122-generic", arch: "amd64", family: "unix" > Reporter: Chandra Prakash > Priority: Minor > > h3. *Overview :* > The order of dependency declaration in the pom is taking precedence instead > of depth. Check this sample : > https://github.com/ProcrastinatorCp/maven-dependency-issue-poc > h3. *Example Scenario :* > There are two modules. *test-a* and *test-b* > *test-a* (depends on javax.servlet-api:2.5) > *test-b* (depends on test-a) > I want to use 3.1.0 version of above library in test-b. However, if test-a is > declared before ***javax.servlet-api*, executing *mvn clean package* fails. > {code:xml} > <!-- NG : Reads 2.5 version of javax.servlet-api --> > <dependency> > <groupId>com.cp.test</groupId> > <artifactId>test-a</artifactId> > <version>${com.cp.test.version}</version> > </dependency> > <dependency> > <groupId>javax.servlet</groupId> > <artifactId>javax.servlet-api</artifactId> > <version>3.1.0</version> > </dependency> > {code} > If I change the ordering, it works fine. > {code:xml} > <!-- OK : Reads 3.1.0 version of javax.servlet-api --> > <dependency> > <groupId>javax.servlet</groupId> > <artifactId>javax.servlet-api</artifactId> > <version>3.1.0</version>[link title|http://example.com] > </dependency> > <dependency> > <groupId>com.cp.test</groupId> > <artifactId>test-a</artifactId> > <version>${com.cp.test.version}</version> > </dependency> > {code} > The documentation at : > [https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html] > > the current pom's declaration takes precedence over its parent's > declaration. > However, current pom declaration is not taking precedence *when ordered > differently* (as above pom) > Could you please confirm. -- This message was sent by Atlassian JIRA (v7.6.3#76005)