Diferencia entre usar gradlew y gradle

229

¿Cuál es la diferencia entre usar gradlewy gradleo son iguales?

megalucio
fuente

Respuestas:

225

La diferencia radica en el hecho de que ./gradlewindica que está utilizando una envoltura de gradle. El envoltorio generalmente es parte de un proyecto y facilita la instalación de gradle. Si estaba usando gradle sin el contenedor, tendría que instalarlo manualmente, por ejemplo, en una Mac brew install gradley luego invocar gradle usando el gradlecomando. En ambos casos está utilizando gradle, pero el primero es más conveniente y garantiza la coherencia de la versión en diferentes máquinas.

Cada Wrapper está vinculado a una versión específica de Gradle, por lo que cuando ejecuta uno de los comandos anteriores para una versión de Gradle determinada, descargará la distribución de Gradle correspondiente y la usará para ejecutar la compilación.

Esto no solo significa que no tiene que instalar Gradle manualmente, sino que también está seguro de utilizar la versión de Gradle para la que está diseñada la compilación. Esto hace que sus compilaciones históricas sean más confiables

Lea más aquí: https://docs.gradle.org/current/userguide/gradle_wrapper.html

Además, Udacity tiene un video ordenado y de alto nivel que explica el concepto del envoltorio de gradle: https://www.youtube.com/watch?v=1aA949H-shk

Abhijit
fuente
8
Tal vez lo estoy leyendo mal, pero me suena como una bandera roja. Parece que Gradle no es compatible con versiones anteriores, o está evolucionando muy rápido (e inestable). ¿Qué sucede con los servidores CI que no tienen acceso a Internet?
The Impaler
@TheImpaler Supongo que tienes que instalar todas las versiones necesarias de Gradle como lo haría el Wrapper si tuviera acceso a Internet.
Ruslan
46

gradlewes un contenedor (w - carácter) que usa gradle.

Under the hood gradlewrealiza tres cosas principales:

  • Descargue e instale la gradleversión correcta
  • Analiza los argumentos
  • Llamar una gradletarea

Con Gradle Wrapper podemos distribuir / compartir un proyecto para que todos usen la misma versión y la funcionalidad de Gradle (compilar, construir, instalar ...) incluso si no se ha instalado.

Para crear una ejecución de contenedor:

gradle wrapper

Este comando genera:

gradle-wrapper.properties contendrá la información sobre la distribución de Gradle

yoAlex5
fuente