Dar*_*der 7 java dependencies maven apache-httpcomponents
我有一个依赖关系如下:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
httpcore.4.1.4当我部署httpcore.4.2一切正常时,这拉低了另一个引发ClassDefNotFound的依赖项。
我添加了两个依赖项,如下所示:
<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>
Run Code Online (Sandbox Code Playgroud)
并且仍然面临着同样的问题,即: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>
Run Code Online (Sandbox Code Playgroud)
您可能有一个传递依赖项,另一个依赖项取决于您不需要的版本。
要获得所有直接和传递依赖关系的概述,请尝试:
mvn依赖项:树
如果您发现同一依赖项的不同版本之间发生崩溃,那么您应该做的第一件事就是弄清楚崩溃是否很严重(是否需要两者兼而有之)。 。如果是传递依赖,请考虑升级此版本。
如果您只想锁定特定版本的依赖项,则可以选择:
排除传递依赖项:
<dependency>
<groupId>com.something</groupId>
<artifactId>something</artifactId>
<exclusions>
<exclusion>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
包括特定版本:
<dependency>
<groupId>com.somethingElse</groupId>
<artifactId>somethingElse</artifactId>
<version>2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在pom中显式添加的任何依赖版本都将覆盖同一groupId / artifactId的任何传递依赖的版本。
尽管有点困惑,但是您应该尝试获取依赖项的兼容版本,即具有相同版本传递依赖项的版本。
| 归档时间: |
|
| 查看次数: |
10172 次 |
| 最近记录: |