我有父pom这样的配置:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.9</version>
</dependency>
</dependencies>
</dependencyManagement>
我的孩子pom:
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
</dependencies>
我想在我的类路径中使用4.3.5版本,因为目前我收到错误,不应该修改父版本:
java.lang.NoClassDefFoundError: org/apache/http/impl/client/HttpClients
任何想法如何防止覆盖4.2.9版本?
答案 0 :(得分:0)
如您所知,您的父pom依赖项包含在子pom中,则不需要在子pom.xml中编写依赖项。 在子使用中包含父pom依赖
<dependency>
<groupId>${defined groupId of parent}</groupId>
<artifactId>${artifact defined for parent }</artifactId>
<version>${version defined for parent}</version>
</dependency>
答案 1 :(得分:0)
在指定依赖关系的父Pom文件中添加范围为提供
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.9</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
但是@Deltharis更好地评论了仅在父POM中使用依赖关系
答案 2 :(得分:0)
我将父版本更改为所需版本并从子版本中删除了依赖项(简单和最佳解决方案)。 感谢@Deltharis的评论!