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版本做例子進行說明 一 路徑近...