maven resolve transitive dependency conflict resolution

Transitive dependency: A (project) depends on B, B depends on C (version 1.1), B is the direct dependency of A, C is the transitive dependency of A,
                              import dependency D, D depends on C (version 1.2)

1.1 Maven’s own mediation principle
     1.1.1 First Declarer First Principle
             Whoever defines it first will use transitive dependencies              1.1.2
     Path-nearer first principle


     
	<dependencies>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.5.10.1</version>
			<!-- Exclude dependencies -->
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-beans</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.9.RELEASE</version>
		</dependency>
	</dependencies>
      

1.3 version locked
     
        <properties>
		<spring.version>4.3.9.RELEASE</spring.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${spring.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
      



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326058143&siteId=291194637