awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
GradleUp avatar

GradleUp/shadow

0
View on GitHub↗
4,204 stars·423 forks·Kotlin·Apache-2.0·15 viewsgradleup.com/shadow↗

Shadow

Shadow is a Gradle plugin used to create fat JARs by bundling a JVM application and all its runtime dependencies into a single executable archive. It functions as a dependency bundler and archive generator, simplifying distribution by merging multiple library files into one artifact.

The project is distinguished by its ability to perform bytecode package relocation, which renames package paths and import statements to prevent classpath version conflicts. It also provides resource merging tools that combine files with identical paths using custom text or XML transformers and produces reproducible builds by normalizing file timestamps and permissions.

The plugin covers broad capabilities including archive content filtering, manifest management, and the generation of startup scripts for deployment. It also handles artifact publishing through metadata-driven workflows and provides diagnostic utilities for duplicate entry detection and classpath resource location.

Features

  • Fat JAR Plugins - Bundles an application and all its runtime dependencies into a single executable fat JAR.
  • Package Relocation - Provides bytecode-level package relocation to avoid classpath conflicts between different library versions.
  • Shadowed Artifact Publishing - Uploads fat archives to repositories and generates metadata files with correct dependency scopes.
  • Project Bundling - Merges project configurations and dependencies into a single self-contained executable file.
  • JVM Application Bundling - Packages combined archives with startup scripts and configuration files into compressed folders ready for production environments.
  • Fat JAR Flattening - Extracts all runtime dependencies into a single flat executable archive for simplified distribution.
  • JVM Dependency Bundlers - Merges JVM application sources and runtime dependencies into a single executable archive.
  • Cross-Project Dependency Merging - Combines dependencies from multiple projects in a single build into one unified archive output.
  • Resource File Merging - Combines resource files with identical paths from different dependencies using custom transformers.
  • Artifact Metadata Publishing - Publishes target versions and bundling attributes as metadata so downstream consumers resolve dependencies correctly.
  • Dependency Scope Configurations - Specifies which runtime dependencies are bundled into the final archive and which remain as external declarations.
  • Startup Script Generation - Creates executable scripts to launch the application with custom output directories and environment variables.
  • Dependency Exclusions - Explicitly excludes specific direct dependencies from the final merged archive to reduce file size.
  • Shadowed Artifact Exposure - Configures project elements to serve the combined archive instead of the standard one to dependent projects.
  • Deployment Archive Bundling - Bundles combined archives with startup scripts and supporting files into compressed folders for distribution.
  • Archive Content Filtering - Uses pattern-matching rules to selectively include or exclude files and dependencies from the final archive.
  • Library Artifact Bundling - Combines multiple library files into a single artifact to simplify the publishing process and reduce consumer dependencies.
  • Manifest Execution Configuration - Configures the application entry point and classpath via metadata within the archive manifest.
  • Archive Manifest Customization - Merges entries from multiple sources and inherits standard attributes to define executable properties in the manifest.
  • External Dependency Manifesting - Keeps runtime dependencies outside the archive while automatically listing them in the manifest path.
  • Duplicate Entry Resolution - Provides strategies to handle file collisions during merging, such as keeping, ignoring, or failing the build.
  • Reproducible Builds - Ensures identical binary output across different environments by normalizing file timestamps and permissions.
  • Reproducible Archiving - Ensures byte-for-byte identical archives by normalizing file timestamps and permissions.
  • Resource Transformers - Implements custom text and XML transformers to merge resource files with identical paths from multiple dependencies.
  • Resource Deduplication - Combines files sharing the same path by appending content or removing duplicate entries to minimize size.

Star history

Star history chart for gradleup/shadowStar history chart for gradleup/shadow

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Shadow

These projects share indexed features with Shadow. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • apache/mavenapache avatar

    apache/maven

    5,161View on GitHub↗

    Maven is a Java build automation tool and software build orchestrator. It functions as a project lifecycle manager and dependency management system, using a standardized project object model to compile, test, and package Java projects. The project distinguishes itself through a phase-based build lifecycle and a plugin-based extension model, allowing users to bind custom goals to specific build stages. It coordinates complex software through multi-module project orchestration and ensures a reproducible build workflow by neutralizing environmental variables and controlling toolchain versions.

    Javaapache-mavenbuild-managementhacktoberfest
    View on GitHub↗5,161
  • pypa/setuptoolspypa avatar

    pypa/setuptools

    2,809View on GitHub↗

    Setuptools is a Python package build tool and distribution framework used to bundle code into distributable archives. It functions as a project metadata manager, allowing for the declarative definition of project identity, versioning, and dependencies. The toolkit distinguishes itself by providing an extension compiler for C and C++ source files and a plugin architecture that uses entry points to enable runtime discovery of functionality. It also supports development environment tooling, such as editable installs that link source code directly to the environment to allow immediate changes wit

    Python
    View on GitHub↗2,809
  • homebrew/legacy-homebrewHomebrew avatar

    Homebrew/legacy-homebrew

    26,849View on GitHub↗

    This project is a command line package manager and dependency management engine used for installing, updating, and removing software packages across different operating systems. It functions as a package recipe system and software repository administrator, utilizing declarative scripts to define software sources, build arguments, and installation steps. The system operates as a binary distribution platform that compiles source code into pre-compiled binaries and distributes them through remote repositories. It includes an automated version tracker that monitors upstream software releases and

    View on GitHub↗26,849
  • vercel/nccvercel avatar

    vercel/ncc

    9,815View on GitHub↗

    ncc is a Node.js build tool and project bundler that compiles a project and its dependencies into a single JavaScript file. It functions as a single-file JavaScript bundler and TypeScript compiler, converting type-annotated source files into standard JavaScript compatible with the Node.js runtime. The tool focuses on serverless function optimization by reducing the number of files and dependencies in a deployment package to improve portability and cold start times. It automates the software release workflow by integrating the compilation and bundling process into programmatic scripts. The pr

    JavaScript
    View on GitHub↗9,815
Compare all 28 related projects→

Frequently asked questions

What does gradleup/shadow do?

Shadow is a Gradle plugin used to create fat JARs by bundling a JVM application and all its runtime dependencies into a single executable archive. It functions as a dependency bundler and archive generator, simplifying distribution by merging multiple library files into one artifact.

What are the main features of gradleup/shadow?

The main features of gradleup/shadow are: Fat JAR Plugins, Package Relocation, Shadowed Artifact Publishing, Project Bundling, JVM Application Bundling, Fat JAR Flattening, JVM Dependency Bundlers, Cross-Project Dependency Merging.

Which projects share features with gradleup/shadow?

Projects with overlapping indexed features include: apache/maven — Maven is a Java build automation tool and software build orchestrator. It functions as a project lifecycle manager and… pypa/setuptools — Setuptools is a Python package build tool and distribution framework used to bundle code into distributable archives.… homebrew/legacy-homebrew — This project is a command line package manager and dependency management engine used for installing, updating, and… vercel/ncc — ncc is a Node.js build tool and project bundler that compiles a project and its dependencies into a single JavaScript… cloudflare/workers-sdk — This project is an edge computing development toolkit and serverless command line interface used to develop, test, and… automattic/_s — This project is a development toolkit and starter kit for creating custom WordPress themes. It provides a standardized…