「忽略衝突」這是Maven的2.2.1產生依賴樹 mvn -o dependency:tree -Dverbose -Dincludes=log4j
解釋在Maven 2依賴樹
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.openboxes.renderingservice:common:jar:1.0
[INFO] +- org.springframework:spring:jar:2.0.4:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1:compile
[INFO] | \- log4j:log4j:jar:1.2.12:compile
[INFO] \- it.mycompany.portal:server:jar:1.5-SNAPSHOT:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.1.0:compile
[INFO] \- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.12)
正如你所看到的log4j v1.2.12優於v1.2.13。我知道「Maven解決了與最近贏策略的版本衝突」(見http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html),但是這兩個依賴關係似乎處於相同的距離(兩個嵌套層次,我錯了嗎?),所以我期望最最近使用了一個。
有人可以解釋這個結果嗎?
是的,log4j沒有在這個POM中顯式聲明(我認爲它應該是),但我想更好地理解Maven的工作方式。
THX
這是值得懷疑的,但至少是確定性的。 – TWiStErRob
https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html – daemon54