作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有如下依赖:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
这将拉下另一个依赖项 httpcore.4.1.4
,它会抛出 ClassDefNotFound,当我部署 httpcore.4.2
时一切正常。
我添加了两个依赖如下:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
并且仍然面临同样的问题,即:mvn 降低了 httpcore.4.1.2
而不是 httpcore.4.2
我该如何解决这个问题?
编辑:
已添加;
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
</dependencyManagement>
最佳答案
你可能有一个传递依赖,你的其他依赖取决于你不想要的版本。
要获得所有依赖关系的概览,直接的和传递的,尝试:
mvn dependency:tree
如果你发现同一个依赖的不同版本之间崩溃,你应该做的第一件事是弄清楚崩溃是否是严重的(你需要两个吗?)如果不是,升级使最低的依赖版本变得相等到最高。如果它是一个传递依赖,请考虑升级它的版本。
如果您只想锁定特定版本的依赖项,您有一些选择:
排除传递依赖:
<dependency>
<groupId>com.something</groupId>
<artifactId>something</artifactId>
<exclusions>
<exclusion>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
</exclusion>
</exclusions>
</dependency>
包含特定版本:
<dependency>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
<version>2.0</version>
</dependency>
在您的 pom 中显式添加的任何依赖版本都将覆盖相同 groupId/artifactId 的任何传递依赖的版本。
虽然有点令人费解,但您应该尝试获取依赖项的兼容版本,即具有相同版本传递依赖项的版本。
关于java - maven 依赖拉错了依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635388/
我无法在附加行中显示“真”、“假”、"is"和“否”按钮。 我在这里有一个应用程序:Application 请按照以下步骤使用应用程序: 1。当你打开应用程序时,你会看到一个绿色的加号按钮,点击 在此
我是一名优秀的程序员,十分优秀!