Maven02

1.maven中依赖传递问题

在整合ssh框架时,struts2-core中多次出现了asm:3.3这个jar包,在使用spring-beans、spring-context等包时也会出现各个版本的其他包(重复了)

问题解决:

1、第一声明优先原则

<dependencies>
  <!--   spring-beans-4.2.4 -->
  	<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-context</artifactId>
  		<version>4.2.4.RELEASE</version>
  	</dependency>
  
  
<!--   spring-beans-3.0.5 -->
  	<dependency>
  		<groupId>org.apache.struts</groupId>
  		<artifactId>struts2-spring-plugin</artifactId>
  		<version>2.3.24</version>
  	</dependency>

2、路径就近优先原则(自己添加jar包)

<dependency>
  		<groupId>org.springframework</groupId>
  		<artifactId>spring-beans</artifactId>
  		<version>4.2.4.RELEASE</version>
  	</dependency>

3、排除原则(排除某版本jar包)

  	<dependency>
  		<groupId>org.apache.struts</groupId>
  		<artifactId>struts2-spring-plugin</artifactId>
  		<version>2.3.24</version>
  		<exclusions>
  		  <exclusion>
  		    <groupId>org.springframework</groupId>
  		    <artifactId>spring-beans</artifactId>
  		  </exclusion>
  		</exclusions>
  	</dependency>

4、版本锁定原则(一开始便锁定指定版本)

<properties>
		<spring.version>4.2.4.RELEASE</spring.version>
		<hibernate.version>5.0.7.Final</hibernate.version>
		<struts.version>2.3.24</struts.version>
	</properties>

	<!-- 锁定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
</dependencies>
</dependencyManagement>

 

2.maven情况下整合ssh

 

 

猜你喜欢

转载自blog.csdn.net/langao_q/article/details/83016346