覆盖maven中第三方jar的依赖关系
像这样org.carrot2
依赖于commons-httpclient 3.1
所以我如何将这个commons-httpclient 3.1
更改为HttpClient 4.1.1
。 我在日食工作。 因为我想从那些依赖于这个jar文件的人那里删除commons-httpclient:3.1
并且我想用HttpClient 4.1.1
替换。
所以我试图做什么..我从依赖层次结构文件夹双击这个org.carrot2
并进入它的pom.xml文件,并试图将commons-httpclient 3.1
更改为httpclient 4.1.1,但它不允许我更改为退格和删除不起作用..
任何建议将不胜感激..
首先请确保所提到的工件可以与HttpClient 4.1.1一起正常工作 。
我们可以为每个依赖项定义“ 排除 ”,如http://maven.apache.org/pom.html#Exclusions中所述。
排除明确告诉Maven您不希望包含作为此依赖项依赖项的指定项目(换句话说,它的传递依赖项)
排除 :排除包含一个或多个排除元素,每个排除元素包含groupId和artifactId,表示要排除的依赖项。 与可选或可能未安装和使用的可选项不同,排除主动将自己从依赖树中删除。
the_group the_artifact the_version the_apache_group the_http_client_artifact the_apache_group the_http_client_artifact 4.1.1 ...
我希望这可能有助于实现这一要求。
问候,
Charlee Ch。
将HttpClient 4.1.1的依赖项添加到您的 POM。 Maven将识别直接依赖关系和间接依赖关系之间的冲突(假设httpclient的groupId和artifactId没有改变),并使用较新的版本。 (不是因为它更新,而是因为它更直接)
而且你不能编辑其他人的pom文件是有道理的 – 毕竟,你想要胡萝卜只在你的程序中使用较新的http客户端,而不是所有使用胡萝卜的程序…
如果某些东西依赖于HttpClient
3.x
,它将无法替代4.x
因为它们是完全不同的API。 尝试访问依赖于3.x
的代码时,您将收到运行时错误。