【发布时间】:2014-09-10 16:29:07
【问题描述】:
我有这样配置的父 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 版本?
【问题讨论】:
-
“我想在我的类路径中使用 4.3.5 版本,因为此时我遇到错误,不应该修改父版本:” - 这有点自相矛盾。
-
您没有理由希望在一个模块化项目中具有不同版本的相同依赖项。即使你现在解决它,它也会在以后咬你。此外,该错误是由于在您正在运行的任何内容中未使用 4.3.5 版本引起的。
-
尝试为父pom文件中的依赖添加
provided -
您的问题有点令人困惑——您“想使用 4.3.5”,但又想“防止覆盖 4.2.9 版本”?您希望孩子 pom 使用哪个版本?无论哪种方式,这个问题都有帮助吗? stackoverflow.com/q/14521176/1570834
-
@DB5 我只想使用子版本。是的,我看到了这个答案,但是没有用。