Maven依赖范围和依赖版本冲突的解决

一、依赖范围

1. Compile  struts2-core

编译(compile)时需要 测试时需要,,运行时需要,打包时需要

2. Provided  jsp-api.jar   servlet-api.jar

编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要

3. Runtime   数据库驱动包

编译时不需要,测试时需要,,运行时需要,打包时需要

4. Test  junit.jar

编译时不需要,测试时需要,运行时不需要,打包也不需要

二、依赖版本冲突的解决

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、 排除原则

  <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.24spring4.2.4hibernate5.0.7 -->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${spring.version}</version>

</dependency>

</dependencies>

</dependencyManagement>


发布了36 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_40098405/article/details/79667610
今日推荐