[英]Maven pulls antlr jar which does not show in dependency:tree
我的 Maven / Java 項目中有多個版本的antlr
,我試圖了解項目的pom.xml
中的哪個依賴項是哪個版本。
在 my.m2 目錄下,我看到三個不同的antlr
版本:
~/.m2/repository/antlr/antlr/2.7.2/antlr-2.7.2.jar
~/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar
~/.m2/repository/.../org.apache.servicemix.bundles.antlr-2.7.7_5.jar
如果我跑
$ mvn dependency:tree
從項目的根目錄,我得到:
[INFO] +- org.apache.directory.api:api-all:jar:2.0.0.AM2:compile
[INFO] | +- ...:org.apache.servicemix.bundles.antlr:jar:2.7.7_5:compile
...
[INFO] +- org.hibernate:hibernate-agroal:pom:5.3.7.Final:compile
[INFO] | +- io.agroal:agroal-pool:jar:0.4:compile
[INFO] | +- org.hibernate:hibernate-core:jar:5.3.7.Final:compile
...
[INFO] | | +- antlr:antlr:jar:2.7.7:compile
So, Maven finds version 2.7.7_5
(pulled by org.apache.directory.api:api-all
) and version 2.7.7
(pulled by org.hibernate:hibernate-agroal
) but no version 2.7.2
. 這個版本沒有直接列在項目pom.xml
中。
我刪除了文件夾.m2/repository/antlr/antlr/2.7.2
並運行
$ mvn compile
從項目的根文件夾中。 這立即再次下載了 2.7.2 版本:
[INFO] Scanning for projects...
...
Downloading from central: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.2/antlr-2.7.2.pom
Downloaded from central: https://repo.maven.apache.org/maven2/antlr/antlr/2.7.2/antlr-2.7.2.pom (145 B at 331 B/s)
而且, mvn dependency:tree
再一次沒有顯示 2.7.2 版本。 怎么會這樣? 為什么 mvn 拉取項目依賴項中未顯示的 JAR 版本? 如何找出pom.xml
文件中的哪個依賴項正在拉取這個 JAR 文件?
過去三個小時我一直在搜索文檔,但目前我不知道。
依賴項也可以來自插件,嘗試運行dependency:resolve-plugins
來解析所有插件及其依賴項:
mvn dependency:resolve-plugins
除此之外,您可能可以做的另一件事是使用-X
選項運行mvn
進行調試。
兩種主要可能性:
.m2/repository
中,那么這只是 Maven 的依賴解析過程的一部分。.m2/repository
.通常,如果您在本地存儲庫中發現意外的 JARs,則無需擔心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.