java - 在 Mavne 中查找导致依赖下载的 jar
问题描述
我的一个应用程序有问题。调用HttpClientBuilder.create().build();
会抛出错误:java.lang.NoSuchFieldError:INSTANCE
. 我能够确定问题是由 org.apache.httpcomponents.httpcore 的版本冲突引起的。即使我在我的 pom 中明确添加了对新版本的依赖,当我在运行时检查类路径时,它仍然使用旧版本的库显示它。
到目前为止,我为追踪依赖源所做的每一次尝试都是空的。如果我执行
mvn dependency:tree -Dincludes=*:httpcore
我得到结果
[INFO] com.tura.jetty:eyerep-data:war:0.0.1-SNAPSHOT
[INFO] \- org.apache.httpcomponents:httpcore:jar:4.3.3:compile
日食也是如此。如果我打开我的 pom 并查看依赖层次结构,那么唯一显示的 jar 版本是我在 pom.xml 中列为依赖项的版本。同时,我知道旧版本正在被拉入。如果我添加
ClassLoader classLoader = TestExport.class.getClassLoader();
URL resource = classLoader.getResource("org/apache/http/message/BasicLineFormatter.class");
System.out.println(resource);
到我的应用程序我得到输出
jar:file:/Users/foo/.m2/repository/org/apache/httpcomponents/httpcore/4.1.2/httpcore-4.1.2.jar!/org/apache/http/message/BasicLineFormatter.class
此外,如果我进入 .m2 文件夹,删除 httpcore 的本地文件夹,然后运行mvn clean install
我可以从日志输出中看到它正在重新下载 jar 的 4.1.2 版本。
我对此束手无策。我还能做些什么来确定我的项目的哪些依赖项导致了这个冲突?
解决方案
推荐阅读
- python - 如何在 SQLAlchemy 中正确定义多对多关系?
- tensorflow - Ml.Net 无效的 GraphDef
- c++ - 将 UTF-8 std::string 解码为 std::u32string?
- mongoid - Mongoid 验证 validates_inclusion_of 没有给我一个错误
- android - 在本机反应中制作滑块导航的最佳方法
- java - 没有任何实现和变量的抽象类是否有效接口?
- google-cloud-platform - 如何更改用于登录 Chrome RDP for Google Cloud Platform 的密码
- python-3.x - cv2.imshow() 无法连接到 X 服务器
- json - 颤振:列表
' 不是类型 'Map 的子类型 解析 JSON 时 - python - 如何检查2个txt之间是否有相同的字符串并将其分开?