gpt4 book ai didi

java - Maven拉取antlr jar,该jar在依赖项中不显示:tree

转载 作者:行者123 更新时间:2023-12-02 02:19:31 25 4
gpt4 key购买 nike

我的 Maven/Java 项目中有多个版本的 antlr,我试图了解项目的 pom.xml 中的哪个依赖项正在拉取哪个版本。

在我的 .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

因此,Maven 找到版本 2.7.7_5(由 org.apache.directory.api:api-all 拉取)和版本 2.7.7 code>(由 org.hibernate:hibernate-agroal 拉取),但没有版本 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 进行调试。

关于java - Maven拉取antlr jar,该jar在依赖项中不显示:tree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66636808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com