Repolode
GradleUp

GradleUp/shadow

A Gradle plugin that builds fat/uber JARs, relocates packages, transforms files, and can shrink output with R8/ProGuard.

Stars
4,243
Forks
427
Open issues
11
Last commit
yesterday

What is it?

Shadow is a Gradle plugin for packaging a project and its dependencies into a single fat or uber JAR. It is the Gradle counterpart to the Maven Shade Plugin, and it covers the common needs of bundling libraries into one runnable artifact.

Beyond merging dependencies, the plugin can relocate (rename) packages to avoid classpath conflicts, transform or merge resource files during packaging, and optimize the output with R8 or ProGuard. It is published on the Gradle Plugin Portal and Maven Central under the plugin ID com.gradleup.shadow, and it supports Gradle 8.0 and later. The project was moved to the GradleUp organization from its original maintainer and uses the older plugin ID com.github.johnrengelman.shadow only in legacy builds.

Key features

  • 01Builds fat/uber JARs that bundle project dependencies into one artifact.
  • 02Relocates packages to avoid classpath conflicts between libraries.
  • 03Transforms and merges resource files during packaging.
  • 04Optimizes output with R8 or ProGuard.
  • 05Available from the Gradle Plugin Portal and Maven Central.

Use cases

  • Producing a single runnable JAR for a Java or Kotlin application with many dependencies.
  • Shading a library under a private package name to avoid conflicts with other versions on the classpath.
  • Shrinking a distributable JAR by removing unused code with R8 or ProGuard.

Quick start

  1. 1

    Apply the plugin with ID com.gradleup.shadow in your Gradle build

  2. 2

    Read the User Guide for configuration and usage

Things to know

  • The latest releases require Java 17 or newer and Gradle 9.4 or newer.

Topics

FAQ

What is shadow?
A Gradle plugin that builds fat/uber JARs, relocates packages, transforms files, and can shrink output with R8/ProGuard. Shadow is a Gradle plugin for packaging a project and its dependencies into a single fat or uber JAR. It is the Gradle counterpart to the Maven Shade Plugin, and it covers the common needs of bundling libraries into one runnable artifact.
Is shadow free to use? What license does it have?
shadow is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is shadow still maintained?
Actively maintained. The last commit to shadow was on Nov 6, 2026.
What can I use shadow for?
Producing a single runnable JAR for a Java or Kotlin application with many dependencies. Shading a library under a private package name to avoid conflicts with other versions on the classpath. Shrinking a distributable JAR by removing unused code with R8 or ProGuard.
How do I install shadow?
Apply the plugin with ID com.gradleup.shadow in your Gradle build Read the User Guide for configuration and usage
Where can I get shadow?
The source code and installation instructions are on GitHub: https://github.com/GradleUp/shadow

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects