阴影
编辑阴影
编辑为了避免版本冲突,依赖项可以被阴影化并打包到客户端的单个 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' }