gpt4 book ai didi

java - maven重新打包模块解决依赖冲突

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:31 25 4
gpt4 key购买 nike

我有一个包含 2 个模块的项目,如下所示:

parent
├── SDK module
└── service module

服务模块依赖于SDK模块。 SDK模块必须依赖httpClient 3.x,但服务模块必须依赖httpClient 4.x。

我知道spring有一个重新打包的cglib。所以我想将httpClient 3.x重新打包到SDK模块来解决这个问题。

有人知道如何做到这一点吗?(也许是 spring-boot:repackage?)

最佳答案

理想情况下,在正在开发的服务中,我希望尽可能避免依赖项冲突。

如果这确实不在个人手中,您可以使用 <exclusions>在您的 pom 依赖声明中以避免版本冲突。只是尝试一下,围绕它的示例如下:-

<强> SDKModule/pom.xml

<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>3.1</version><!--just an example-->
</dependency>

<强> ServiceModule/pom.xml

<dependency>
<groupId>some-group-id</groupId>
<artifactId>sdk-module</artifactId>
<version>some.version</version>
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--This adds an exclusive version of httpclient not included via sdk-module-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>

关于java - maven重新打包模块解决依赖冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44528021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com