Repolode
GradleUp

GradleUp/shadow

一个 Gradle 插件,用于构建 fat/uber JAR、重定位包名、转换文件,并可借助 R8/ProGuard 优化产物。

Star
4,243
Fork
427
未关闭 Issue
11
最近提交
昨天

这是什么?

Shadow 是一个 Gradle 插件,用于把项目及其依赖打包成单个 fat JAR 或 uber JAR。它是 Maven Shade Plugin 在 Gradle 中的对应工具,覆盖了将库打包为一个可运行产物的常见需求。

除了合并依赖,该插件还可以重定位(重命名)包名以避免类路径冲突,在打包时转换或合并资源文件,并借助 R8 或 ProGuard 优化输出。插件发布于 Gradle Plugin Portal 和 Maven Central,插件 ID 为 com.gradleup.shadow,支持 Gradle 8.0 及以上版本。项目已迁移至 GradleUp 组织维护,旧的插件 ID com.github.johnrengelman.shadow 仅用于历史构建。

核心功能

  • 01构建 fat/uber JAR,将项目依赖合并为单个产物。
  • 02重定位包名,避免库之间的类路径冲突。
  • 03在打包过程中转换和合并资源文件。
  • 04通过 R8 或 ProGuard 优化输出产物。
  • 05可从 Gradle Plugin Portal 和 Maven Central 获取。

适用场景

  • 为依赖较多的 Java 或 Kotlin 应用生成单个可运行 JAR。
  • 将库重定位到私有包名下,避免与类路径上的其他版本冲突。
  • 借助 R8 或 ProGuard 移除未使用代码,缩小可分发的 JAR 体积。

快速上手

  1. 1

    在 Gradle 构建脚本中应用插件 ID com.gradleup.shadow

  2. 2

    阅读用户指南以了解配置和用法

使用前须知

  • 最新版本需要 Java 17 或更高版本,以及 Gradle 9.4 或更高版本。

标签

常见问题

shadow 是什么?
一个 Gradle 插件,用于构建 fat/uber JAR、重定位包名、转换文件,并可借助 R8/ProGuard 优化产物。 Shadow 是一个 Gradle 插件,用于把项目及其依赖打包成单个 fat JAR 或 uber JAR。它是 Maven Shade Plugin 在 Gradle 中的对应工具,覆盖了将库打包为一个可运行产物的常见需求。
shadow 可以免费使用吗?用的什么许可证?
shadow 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
shadow 还在维护吗?
活跃维护中。shadow 最近一次提交是在 2026年11月6日。
shadow 适合用来做什么?
为依赖较多的 Java 或 Kotlin 应用生成单个可运行 JAR。 将库重定位到私有包名下,避免与类路径上的其他版本冲突。 借助 R8 或 ProGuard 移除未使用代码,缩小可分发的 JAR 体积。
shadow 怎么安装和运行?
在 Gradle 构建脚本中应用插件 ID com.gradleup.shadow 阅读用户指南以了解配置和用法
在哪里获取 shadow?
源代码和安装说明在 GitHub 上:https://github.com/GradleUp/shadow

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目