A logo showing the text blog.marcnuri.com
English
Inicio»Java»Gradle: Cómo añadir Gradle Wrapper desde Docker

Entradas Recientes

  • Fabric8 Kubernetes Client 6.5.0 está disponible!
  • Fabric8 Kubernetes Client 6.4.1 está disponible!
  • Fabric8 Kubernetes Client 6.3.1 está disponible!
  • Eclipse JKube 1.10 está disponible!
  • Fabric8 Kubernetes Client 6.2.0 está disponible!

Categorías

  • Antiguo
  • Front-end
  • Herramientas
  • Java
  • JavaScript
  • Operaciones
  • Proyectos personales

Archivos

  • marzo 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • mayo 2020
  • marzo 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • marzo 2007

Gradle: Cómo añadir Gradle Wrapper desde Docker

2021-07-23 en Java etiquetado Docker / Gradle / Java / Consejo breve por Marc Nuri | Última actualización: 2021-07-23
English version

Gradle Wrapper

Gradle recomienda Gradle Wrapper como la mejor forma de ejecutar cualquier Gradle build. Gradle Wrapper es un script que descarga e invoca una versión específica de Gradle. Esto supone dos ventajas. La primera es que no necesitas tener Gradle en tu entorno. La segunda es que puedes garantizar que el build script siempre se ejecuta con la misma versión de Gradle.

Añadir el Gradle Wrapper es tan fácil como ejecutar el siguiente comando:

$ gradle wrapper
> Task :wrapper

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

Tal como se describe en la documentación de Gradle, el proceso es realmente sencillo. Además de añadir el Wrapper, también puedes configurar sus propiedades empleando algunas opciones en la línea de comandos: --gradle-version, --gradle-distribution-url,--distribution-type, etc. No obstante, esto asume que ya dispones de una instalación de Gradle disponible en tu sistema (esto es un poco contradictorio).

Añadir Gradle Wrapper desde Docker

Si no dispones de Gradle, pero sí de Docker, todavía puedes añadir el Wrapper. El siguiente comando añadirá el Wrapper utilizando Docker en lugar de una instalación local:

docker run --rm                               \
  -u "$(id -u):$(id -g)"                      \
  -v $(pwd):/opt/gen                          \
  -w /opt/gen                                 \
  gradle:6.9-jre /usr/bin/gradle wrapper

El comportamiento es muy similar a si ejecutásemos el comando empleando una distribución local de Gradle, así que las mismas opciones de la línea de comandos son válidas:

docker run --rm                               \
  -u "$(id -u):$(id -g)"                      \
  -v $(pwd):/opt/gen                          \
  -w /opt/gen                                 \
  gradle:6.9-jre /usr/bin/gradle wrapper --gradle-version 7.1.1 --distribution-type all

El comando anterior ejecuta /usr/bin/gradle (el comando proporcionado), en el contenedor basado en la imagen de Docker gradle:6.9-jre.

  • --rm elimina el contenedor una vez la ejecución del comando ha terminado.
  • -u "$(id -u):$(id -g)" fuerza a que el contenedor se ejecute con el user:group actual del sistema anfitrión. Esto permite que gradle genere los ficheros del Wrapper con los permisos correctos.
  • -v $(pwd):/opt/gen monta el directorio actual en el contenedor de forma que los ficheros generados se persistan localmente.
  • -w /opt/gen fija el directorio de trabajo para que gradle genere el Wrapper en el directorio que hemos montado.

Por último, para hacer que los ficheros del Gradle Wrapper estén disponibles para el resto del equipo, debes de registrar los siguientes ficheros en tu sistema de control de versiones (todos excepto los contenidos en el directorio .gradle):

├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat
Una imagen del logo de Gradle sobre el logo de blog.marcnuri.com
Una imagen del logo de Gradle sobre el logo de blog.marcnuri.com
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos

← Eclipse JKube 1.4.0 está disponible!Cómo instalar Prometheus y Grafana en Minikube →
© 2007 - 2023 Marc Nuri