maven依賴的問題

2021-07-17 03:57:22 字數 2283 閱讀 7693

junit和jackson的依賴問題:

junit的依賴錯誤:

問題:

錯誤: 程式包org.junit不存在

檢查報錯的檔案,發現用到了:

importorg.junit.before;

importorg.junit.test;

於是搜尋發現,before, after只支援4.x.x的版本,而原工程中的pom依賴中的版本為3.8.1。更新junit版本到4.8.1,解決次問題。

jackson的依賴:

問題:

錯誤: 程式包com.fasterxml.jackson.databind不存在

工程的目錄結構為:

projet a

|- module 1

|- module 2

|- module 3

| pom.xml

報錯的是module 2。project a的pom中已經包含了jackson的相關依賴。

com.fasterxml.jackson.core

jackson-annotations

2.2.2

com.fasterxml.jackson.core

jackson-core

2.2.2

com.fasterxml.jackson.core

jackson-databind

2.2.2

<

dependency>

<

groupid>com.fasterxml.jackson.core

groupid>

<

artifactid>jackson-core

artifactid>

<

scope>provided

scope>

dependency>

<

dependency>

<

groupid>com.fasterxml.jackson.core

groupid>

<

artifactid>jackson-databind

artifactid>

<

scope>provided

scope>

dependency>

<

dependency>

<

groupid>com.fasterxml.jackson.core

groupid>

<

artifactid>jackson-annotations

artifactid>

<

scope>provided

scope>

dependency>

而module2中包含了module 1的模組,而未直接引入對jackson的依賴,故而報錯:

<

dependency>

<

groupid>projecta

groupid>

<

artifactid>module1

artifactid>

dependency>

解決方法: 

在module1的pom.xml中加入對jackson的依賴,問題得到解決。

Maven的依賴範圍

scope的值 依賴範圍 編譯有效 執行時有效 測試有效 compile 是 是 是 test 否 否 是 provided 是 否 是 runtime 否 是 是 system 是 否 是 compile 預設依賴範圍,執行時會被打包。test 他在測試階段使用,執行時不需要所以不會被打包。pro...

maven依賴管理

直接依賴 a依賴於b 稱之為直接依賴 間接以來 a依賴於b b依賴於c a間接依賴於c 1 第一宣告優先原則,pom檔案中誰寫在上面,那麼就是第一宣告的包,最終進入專案的就是這個包依賴的jar包 2路徑近者優先原則,直接依賴路徑比傳遞依賴路徑近,哪個路徑近進入專案的就是那個包 3 直接排除法,用ex...

Maven中依賴版本衝突問題

解決該問題有四種原則 路徑近者優先原則,第一宣告者優先原則,這兩種原則又統稱為調節原則,還有排除原則和版本鎖定原則。以下原則struts2 spring plugin中的spring bean 3.0.5包和spring context中spring bean4.2.4版本做例子進行說明 一 路徑近...