这样org.carrot2
取决于commons-httpclient 3.1
所以我如何将此commons-httpclient 3.1
更改为HttpClient 4.1.1
。我在日食工作。因为我想删除
commons-httpclient:3.1
来自那些依赖此jar文件的人,我想用HttpClient 4.1.1
替换。
所以我试图做什么..我从依赖层次结构文件夹中双击了这个org.carrot2
并进入了它的pom.xml文件,并试图将commons-httpclient 3.1
更改为httpclient 4.1.1但是它不允许我更改为退格键并且删除不起作用..
任何建议都将受到赞赏..
答案 0 :(得分:14)
首先请确保提到的工件可以使用HttpClient 4.1.1 正常工作。
我们可以为http://maven.apache.org/pom.html#Exclusions
中提到的每个依赖项定义“排除”排除明确告诉Maven 你不想包括 指定的项目是一个依赖项 这种依赖性(换句话说, 它的传递依赖)
排除:排除项包含一个或 每个都有更多的排斥因素 包含groupId和artifactId 表示要排除的依赖项。 与可选的不同,可能是也可能不是 安装和使用,排除 积极地从中脱身 依赖树。
<dependencies>
<dependency>
<groupId>the_group</groupId>
<artifactId>the_artifact</artifactId>
<version>the_version</version>
<exclusions>
<exclusion>
<groupId>the_apache_group</groupId>
<artifactId>the_http_client_artifact</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>the_apache_group</groupId>
<artifactId>the_http_client_artifact</artifactId>
<version>4.1.1</version>
</dependency>
...
</dependencies>
我希望这可能有助于达到要求。
此致
Charlee Ch。
答案 1 :(得分:2)
将HttpClient 4.1.1的依赖项添加到您的 POM。 Maven将识别直接依赖关系和间接依赖关系之间的冲突(假设httpclient的groupId和artifactId没有改变),并使用较新的版本。 (不是因为它是新的,而是因为它是更直接的一个)
有理由你不能编辑别人的pom文件 - 毕竟,你想要胡萝卜只在你的程序中使用较新的http客户端,而不是所有使用胡萝卜的程序......
答案 2 :(得分:0)
如果某些内容取决于HttpClient
3.x
,则替换4.x
将无效,因为它们是完全不同的API。尝试访问依赖3.x
的代码时,您将收到运行时错误。