1. 程式人生 > >Maven學習筆記---傳遞依賴衝突解決

Maven學習筆記---傳遞依賴衝突解決

Maven學習筆記—傳遞依賴衝突解決

傳遞依賴:A(專案)依賴B,B依賴C(1.1版本),B是A的直接依賴,C就是A的傳遞依賴;
匯入依賴D,D依賴C(1.2版本),這時會產生依賴衝突

maven自己調節

第一宣告者優先原則

誰先定義的就用誰的傳遞依賴。

路徑近者優先原則

直接依賴級別高於傳遞依賴。

手動排除依賴

選擇自己要用的版本,其餘的版本去除掉(一般保留高版本的依賴)
移除不想要的依賴
pom.xml檔案中的配置
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