1. 程式人生 > >Maven依賴範圍和依賴版本衝突的解決

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>