我有一个项目有2个模块,如下所示:
parent
├── SDK module
└── service module
服务模块依赖于SDK模块。 SDK模块必须依赖于httpClient 3.x,但服务模块必须依赖于httpClient 4.x。
我知道spring有一个重新包装的cglib。所以我想重新打包httpClient 3.x到SDK模块来解决这个问题。
任何人都知道如何做到这一点?(也许是spring-boot:repackage?)
答案 0 :(得分:0)
理想情况下,在开发中的服务中,我希望尽可能避免冲突的依赖项。
如果真的不在个人手中,你可以在你的pom依赖声明中使用<exclusions>
来避免版本冲突。试试看,围绕它的样本就像: -
<强> 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>