versiones releases que org version-control gradle

version control - releases - ¿Por qué el Gradle Wrapper debe estar comprometido con VCS?



que es gradle wrapper (3)

Porque todo el punto de la gradle wrapper es poder, sin haber instalado alguna vez gradle

El mismo argumento vale para el JDK, ¿quieres comprometer eso también? ¿También comprometes todas tus bibliotecas de dependencias?

Las dependencias deben actualizarse continuamente a medida que se lanzan nuevas versiones. Para obtener seguridad y otras correcciones de errores. Y porque si te quedas muy atrás puede ser una tarea muy lenta actualizarse nuevamente.

Si el envoltorio gradle se incrementa para cada nuevo lanzamiento, y se confirma, el repositorio crecerá muy grande. El problema es obvio cuando se trabaja con VCS distribuido donde un clon descargará todas las versiones de todo.

y sin saber cómo funciona

Cree un script de compilación que descargue el contenedor y lo use para compilar. No es necesario que todos sepan cómo funciona el script, necesitan acordar que el proyecto se construye ejecutándolo.

, desde dónde descargarlo, qué versión

task wrapper(type: Wrapper) { gradleVersion = ''X.X'' }

Y entonces

gradle wrapper

Para descargar la versión correcta.

, para clonar el proyecto desde el VCS, ejecutar el script gradlew que contiene y construir el proyecto sin ningún paso adicional.

Resuelto por los pasos anteriores. Descargar el contenedor gradle no es diferente de descargar otras dependencias. La secuencia de comandos podría ser inteligente para comprobar si hay algún contenedor gradle actual y solo descargarlo si hay una nueva versión.

Si el desarrollador nunca antes ha usado Gradle y tal vez no sabe que el proyecto está construido con Gradle. Entonces es más obvio ejecutar un "build.sh" en comparación con ejecutar "gradlew build".

Si todo lo que tenía era un número de versión de Gradle en un archivo build.gradle, necesitaría un archivo README que explicara a todos que la versión X de gradle debe descargarse de la URL Y una instalación.

No, no necesitarías un LÉAME. Podría tener uno, pero somos desarrolladores y debemos automatizar tanto como sea posible. Crear un script es mejor.

y tendrías que hacerlo cada vez que la versión se incremente.

Si los desarrolladores aceptan que el proceso correcto es:

  1. Clonar repo
  2. Ejecutar script de construcción

Luego, la actualización a la última envoltura gradle no es un problema. Si la versión se incrementa desde la última ejecución, la secuencia de comandos podría descargar la nueva versión.

De la documentación de Gradle: https://docs.gradle.org/current/dsl/org.gradle.api.tasks.wrapper.Wrapper.html

Los scripts generados por esta tarea están destinados a su sistema de control de versiones. Esta tarea también genera un pequeño archivo JAR de arranque y archivo de propiedades JAR gradle-wrapper.jar que también debe estar comprometido con su VCS. Los scripts se delegan en este JAR.

De: ¿Qué NO debería estar bajo control de fuente?

Creo que los Generated files no deberían estar en el VCS.

¿Cuándo se gradlew y gradle/gradle-wrapper.jar ?

¿Por qué no almacenar una gradle version en el archivo build.gradle ?


Me gustaría recomendar un enfoque simple.

En el archivo README de su proyecto, documente que se requiere un paso de instalación, a saber:

gradle wrapper --gradle-version 3.3

Esto funciona con Gradle 2.4 o superior. Esto crea un contenedor sin necesidad de agregar una tarea dedicada a "build.gradle".

Con esta opción, ignore (no controle) estos archivos / carpetas para el control de versiones:

  • ./gradle
  • gradlew
  • gradlew.bat

El beneficio clave es que no tiene que registrar un archivo descargado en el control de fuente. Cuesta un paso extra en la instalación. Creo que vale la pena


Porque el objetivo de la envoltura gradle es poder, sin tener que instalar gradle, y sin saber cómo funciona, desde dónde descargarlo, qué versión, para clonar el proyecto desde el VCS, ejecutar el script gradlew contiene y para construir el proyecto sin ningún paso adicional.

Si todo lo que tenía era un número de versión gradle en un archivo build.gradle, necesitaría un README que explicara a todos que la versión X de gradle debe descargarse de la URL Y e instalarse, y que debería hacerlo cada vez que se incrementa la versión.