Maven學習筆記---傳遞依賴衝突解決
Maven學習筆記—傳遞依賴衝突解決
傳遞依賴:A(專案)依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的傳遞依賴;
匯入依賴D,D依賴C(1.2版本),這時會產生依賴衝突
maven自己調節
第一宣告者優先原則
誰先定義的就用誰的傳遞依賴。
路徑近者優先原則
直接依賴級別高於傳遞依賴。
手動排除依賴
選擇自己要用的版本,其餘的版本去除掉(一般保留高版本的依賴)
pom.xml檔案中的配置
(依賴)版本鎖定(常用)
pom.xml檔案中的配置,此處用了屬性設定,所有jar包的依賴版本都是直接引用相應的屬性,便於以後升級(更改)版本。
<!-- 屬性 -->
<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 >
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 依賴管理 -->
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!-- hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<!-- 資料庫驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<scope>runtime</scope>
</dependency>
<!-- c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- 匯入 struts2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
</dependency>
<!-- servlet jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- 日誌 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.15</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
</dependencies>
相關推薦
Maven學習筆記---傳遞依賴衝突解決
Maven學習筆記—傳遞依賴衝突解決 傳遞依賴:A(專案)依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的傳遞依賴; 匯入依賴D,D依賴C(1.2版本),這時會產生依賴衝突 maven自己調節 第一宣告者優先原則 誰先定義的就用誰的
maven傳遞依賴衝突解決
傳遞依賴: A.jar 依賴 B.jar, B.jar 依賴 C.jar, 這個時候我們就說B是A的直接依賴, C是A傳遞依賴; 傳遞依賴可能會產生衝突: 聯絡著上面, 新匯入一個jar包D.jar, D依賴C.jar, 但是B依賴的1.1版本, 而D依賴的是1.2版本
maven 傳遞依賴-衝突解決
依賴是會被傳遞 A-->C B-->A ==>B-->C(這種依賴是基於compile這個範圍進行傳遞) 在dependency配置中如果沒有寫scope預設就是compile範圍,依賴的傳遞主要是針對compile作用域
Maven學習筆記四(坐標和依賴)
Maven學習筆記 坐標 什麽是坐標? 在平面幾何中坐標(x,y)可以標識平面中唯一的一點 Maven 坐標主要組成 groupId:定義當前 Maven 項目隸屬項目、組織 artifactId:定義實際項目中的一個模塊 version:定義當前項目的當前版本
maven依賴衝突解決方案
1. 傳遞依賴 1.1 什麼是傳遞依賴 如果A依賴於B,B依賴於C,則稱B是A的直接依賴,C是A的傳遞依賴 1.2 傳遞依賴衝突 如A依賴於B,B依賴於C(1.1版本),同時A依賴於D,D也依賴於C(2.1版
【maven】排除maven中jar包依賴的解決過程 例子:spring cloud啟動zipkin,報錯maven依賴jar包衝突 Class path contains multiple SLF4J bindings.
一直對於maven中解決jar包依賴問題的解決方法糾結不清: 下面這個例子可以說明一個很簡單的解決方法: 專案啟動報錯: Connected to the target VM, address: '127.0.0.1:59412', transport: 'sock
maven依賴衝突解決辦法
一般的開發,maven依賴衝突基本不存在,但是如果專案多,依賴複雜,就說不定了。依賴衝突說明專案依賴的某一個jar包,有多個不同的版本,至少兩個或兩個以上,對於這種問題,最直接的就是通過修改專案依賴的版本為最新的版本即可。同時,也有另一種解決辦法,就是將傳遞依賴剪除掉(低版本的那個依
Maven依賴衝突解決 及 常見錯誤
Maven依賴衝突解決及常見錯誤 Web工程依賴 兩個不同的maven專案,依賴同一個artifactId但是版本不同,這時候就會產生maven的jar依賴衝突問題! 排除依賴 <dependencies>
Maven依賴原則及依賴衝突解決
1、Maven依賴原則 ①最短路徑優先 ②同路徑宣告順序優先 2、查詢依賴樹 ①mvn dependency:tree ②idea檢視,maven project,選擇模組,右鍵show dependencies ③eclipse 開啟pom.xml,切換到Dep
Maven管理(依賴範圍,依賴傳遞,依賴衝突,依賴可選,依賴排除)
Maven管理: 1. 依賴範圍 maven的依賴範圍有4種, 分別是: compile: 對主程式碼有效, 對測試程式碼有效, 被打包執行時有效. test: 對主程式碼無效, 對測試程式碼有效, 被打包執行時無效. provided
Maven 學習筆記
學習筆記 ins 版本 jdbc 命令 group 處理 sql ack 一、常用命令 1、安裝指定的jar包命令 mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver
Maven學習筆記(一)
path maven構建 執行 使用 本地倉庫 install pack class文件 cti 清單一:1.項目主代碼一般情況放在src/main/java目錄下,無須額外的配置,Maven會直接尋找目錄找到項目主代碼。 2.Java類的包名應該與GroupId,
Maven學習筆記—安裝和配置
src 自己 修改 分享 另一個 window 關於 1.3 頁面 Maven的安裝和配置 1 在windows上安裝maven 1.1 下載maven 訪問maven的下載頁面:http://maven.apache.org/download.cgi,選擇版本下載即可。
Asp.net core 學習筆記 ( DI 依賴註入 )
ada nec 方法 ace 實例 pos esql cnblogs mail 比起 Angular 的依賴註入, core 的相對簡單許多, 容易明白 所有 provider 都在 startup 裏配置. public void ConfigureServices
maven學習筆記--window平臺下的安裝和一些基本的配置
默認 com onf mage win ips blog 磁盤 png maven官網:http://maven.apache.org/ 系統要求如下: 安裝及配置步驟 (1)下載:到Maven 的官網上去下載windows版本的Maven的安裝包!下載對應的zip 格式
maven 學習筆記--簡介
命令 lan 項目 java平臺 targe 服務 bsp 一個 之一 1.什麽是maven Maven是一個服務於基於java平臺的項目構建、依賴管理和項目信息管理。 2:什麽是構建,maven是個優秀構建工具? (1)構建(bulid):對代碼的進行編譯、運行單
1-1 maven 學習筆記構
成功 衍生 服務 自動下載 其他 搜索 一個 自動 構建 一.基礎概念 1.Maven作為Apache組織中頗為成功的開源項目,主要服務於基於Java平臺的項目構建,依賴管理和項目信息管理。從清理,編譯,測試到生成報告,到打包部署,自動化構建過程。 還可以跨平臺,對外提供了
Maven學習筆記一(Maven安裝與環境變量配置)
maven學習筆記Maven包1.apache-maven-3.3.9-bin.zip2.apache-maven-3.3.9-src.zip(源碼) 配置環境變量 驗證: Maven學習筆記一(Maven安裝與環境變量配置)
Maven學習筆記二(配置本地倉庫)
maven學習筆記 Maven的默認本地倉庫在: ${user.home}/.m2/repository; 如果需要自定義倉庫路徑,可以找到maven文件夾下的conf下的setting.xml文件進行修改, 以下自定義倉庫路徑為E:\java\Maven\apache-maven-3
Maven學習筆記三(Eclipse創建Maven項目)
Maven學習筆記配置 Eclipse Maven 環境 1.配置 Manen 地址 將下載的Maven導入進來,然後勾選使用 2.設置 setting.xml 地址 選中Maven下conf目錄下的settings.xml,然後local Reposi