El lenguaje de programación Kotlin, su compilador, biblioteca estándar y herramientas de compilación, desarrollados por JetBrains para el desarrollo multiplataforma.
GradleUp/shadow
Un plugin de Gradle que crea JARs fat/uber, reubica paquetes, transforma archivos y puede reducir el tamaño del resultado con R8/ProGuard.
- Estrellas
- 4,245
- Forks
- 427
- Issues abiertos
- 11
- Último commit
- hace 13 horas
¿Qué es?
Shadow es un plugin de Gradle para empaquetar un proyecto y sus dependencias en un único JAR fat o uber. Es el equivalente en Gradle del Maven Shade Plugin y cubre las necesidades habituales para agrupar bibliotecas en un único artefacto ejecutable.
Además de combinar dependencias, el plugin puede reubicar (cambiar el nombre de) paquetes para evitar conflictos en el classpath, transformar o combinar archivos de recursos durante el empaquetado y optimizar el resultado con R8 o ProGuard. Se publica en Gradle Plugin Portal y Maven Central con el ID de plugin com.gradleup.shadow, y es compatible con Gradle 8.0 y versiones posteriores. El proyecto pasó a la organización GradleUp desde su mantenedor original y solo usa el ID de plugin antiguo com.github.johnrengelman.shadow en compilaciones heredadas.
Funciones clave
- 01Crea JARs fat/uber que agrupan las dependencias del proyecto en un único artefacto.
- 02Reubica paquetes para evitar conflictos en el classpath entre bibliotecas.
- 03Transforma y combina archivos de recursos durante el empaquetado.
- 04Optimiza el resultado con R8 o ProGuard.
- 05Está disponible en Gradle Plugin Portal y Maven Central.
Casos de uso
- Generar un único JAR ejecutable para una aplicación Java o Kotlin con muchas dependencias.
- Reubicar una biblioteca bajo un nombre de paquete privado para evitar conflictos con otras versiones presentes en el classpath.
- Reducir el tamaño de un JAR distribuible eliminando código no utilizado con R8 o ProGuard.
Inicio rápido
- 1
Aplica en tu compilación de Gradle el plugin con el ID com.gradleup.shadow
- 2
Consulta la User Guide para ver cómo configurarlo y usarlo
Antes de usarlo
- Las versiones más recientes requieren Java 17 o posterior y Gradle 9.4 o posterior.
Temas
Preguntas frecuentes
- ¿Qué es shadow?
- Un plugin de Gradle que crea JARs fat/uber, reubica paquetes, transforma archivos y puede reducir el tamaño del resultado con R8/ProGuard. Shadow es un plugin de Gradle para empaquetar un proyecto y sus dependencias en un único JAR fat o uber. Es el equivalente en Gradle del Maven Shade Plugin y cubre las necesidades habituales para agrupar bibliotecas en un único artefacto ejecutable.
- ¿shadow es gratuito? ¿Qué licencia tiene?
- shadow es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿shadow sigue mantenido?
- Mantenimiento activo. El último commit de shadow fue el 7 nov 2026.
- ¿Para qué puedo usar shadow?
- Generar un único JAR ejecutable para una aplicación Java o Kotlin con muchas dependencias. Reubicar una biblioteca bajo un nombre de paquete privado para evitar conflictos con otras versiones presentes en el classpath. Reducir el tamaño de un JAR distribuible eliminando código no utilizado con R8 o ProGuard.
- ¿Cómo se instala shadow?
- Aplica en tu compilación de Gradle el plugin con el ID com.gradleup.shadow Consulta la User Guide para ver cómo configurarlo y usarlo
- ¿Dónde consigo shadow?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/GradleUp/shadow
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Plugin de Gradle para publicar bibliotecas de Java, Kotlin y Android, con fuentes y javadoc, en Maven Central u otros repositorios Nexus.
Un plugin de Gradle que integra ktlint para añadir tareas de comprobación y formato automático a proyectos Kotlin.
Gradle es una herramienta de automatización de builds para proyectos multiproyecto en Java, Kotlin, Scala, Android, Groovy, C++ y Swift.
Crea imágenes de contenedor Docker y OCI optimizadas para aplicaciones Java con Maven o Gradle, sin un daemon de Docker.
Gestor de repositorios Maven ligero y autogestionado para artefactos JVM, una alternativa más liviana a Nexus, Archiva y Artifactory.