隐藏
编辑隐藏编辑
为了避免版本冲突,可以将依赖项隐藏并打包在客户端的单个 JAR 文件中(有时称为“uber JAR”或“fat JAR”)。隐藏依赖项包括获取其内容(资源文件和 Java 类文件)并在将它们放入与低级 Java REST 客户端相同的 JAR 文件之前重命名其某些包。可以通过 Gradle 和 Maven 的第三方插件来完成 JAR 的隐藏。
请注意,隐藏 JAR 也会产生影响。例如,隐藏 Commons Logging 层意味着还需要隐藏第三方日志记录后端。
Maven 配置编辑
以下是使用 Maven Shade 插件的配置。将以下内容添加到您的 pom.xml
文件中
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <phase>package</phase> <goals><goal>shade</goal></goals> <configuration> <relocations> <relocation> <pattern>org.apache.http</pattern> <shadedPattern>hidden.org.apache.http</shadedPattern> </relocation> <relocation> <pattern>org.apache.logging</pattern> <shadedPattern>hidden.org.apache.logging</shadedPattern> </relocation> <relocation> <pattern>org.apache.commons.codec</pattern> <shadedPattern>hidden.org.apache.commons.codec</shadedPattern> </relocation> <relocation> <pattern>org.apache.commons.logging</pattern> <shadedPattern>hidden.org.apache.commons.logging</shadedPattern> </relocation> </relocations> </configuration> </execution> </executions> </plugin> </plugins> </build>
Gradle 配置编辑
以下是使用 Gradle ShadowJar 插件的配置。将以下内容添加到您的 build.gradle
文件中
shadowJar { relocate 'org.apache.http', 'hidden.org.apache.http' relocate 'org.apache.logging', 'hidden.org.apache.logging' relocate 'org.apache.commons.codec', 'hidden.org.apache.commons.codec' relocate 'org.apache.commons.logging', 'hidden.org.apache.commons.logging' }