JetBrains 开发的 Kotlin 编程语言,包含编译器、标准库及构建工具,支持多平台开发。
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
在 Gradle 构建脚本中应用插件 ID com.gradleup.shadow
- 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 数据每日更新。
相关项目
一个 Gradle 插件,可将 Java、Kotlin 和 Android 库(含源码与 javadoc)发布到 Maven Central 或其他 Nexus 仓库。
为 Kotlin 项目添加 ktlint 代码检查与自动格式化任务的 Gradle 插件。
Gradle 是一款构建自动化工具,可用于 Java、Kotlin、Scala、Android、Groovy、C++ 和 Swift 等多语言项目的构建、测试与部署。
无需 Docker daemon,通过 Maven 或 Gradle 为 Java 应用构建优化的 Docker/OCI 镜像。