¿Qué es el "proyecto"?
Tal vez hay una definición técnica de este idioma que excluye los scripts de compilación. Pero si aceptamos esta definición, ¡entonces debemos decir que su "proyecto" no es todo lo que necesita versionar!
Pero si decimos "su proyecto" es todo lo que ha hecho . Entonces podemos decir que debe incluirlo y solo en VCS.
Esto es muy teórico y quizás no práctico en el caso de nuestros trabajos de desarrollo. Entonces lo cambiamos a " su proyecto es cada archivo (o carpeta) que necesita para editarlos directamente ".
"directamente" significa "no indirectamente" e "indirectamente" significa al editar otro archivo y luego se reflejará un efecto en este archivo .
Entonces llegamos a lo mismo que OP dijo (y se dice aquí ):
Creo que los archivos generados no deberían estar en el VCS.
Si. Porque no los has creado. Por lo tanto, no forman parte de "su proyecto" según la segunda definición.
¿Cuál es el resultado de estos archivos?
build.gradle : sí. Necesitamos editarlo. Nuestros trabajos deben ser versionados.
Nota: No hay diferencia donde lo editas. Ya sea en su entorno de editor de texto o en el entorno de GUI de Project Structure De todos modos lo haces directamente !
gradle-wrapper.properties : Sí. Necesitamos al menos determinar la versión de Gradle en este archivo.
gradle-wrapper.jar y gradlew [.bat] : ¡No los he creado o editado en ninguno de mis trabajos de desarrollo, hasta este momento! Por tanto, la respuesta es no". Si lo ha hecho, la respuesta es "Sí" sobre usted en ese trabajo (y sobre el mismo archivo que editó).
La nota importante sobre el último caso es el usuario que clona su repositorio, necesita ejecutar este comando en los repositorios<root-directory>
para generar automáticamente archivos de envoltura:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
y $distType
se determinan a partir de gradle-wrapper.properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Consulte https://gradle.org/install/ para obtener más información.
gradle
El ejecutable está bin/gradle[.bat]
en distribución local. No se requiere que la distribución local sea la misma que la determinada en el repositorio. Después de crear los archivos de contenedor , gradlew[.bat]
puede descargar automáticamente la distribución de Gradle determinada (si no existe localmente). Entonces, él / ella probablemente debe regenerar los archivos de envoltura usando un nuevo gradle
ejecutable (en la distribución descargada) usando las instrucciones anteriores.
Nota: En las instrucciones anteriores, se supone que el usuario tiene al menos una distribución de Gradle localmente (por ejemplo ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
). Cubre casi todos los casos reales. Pero, ¿qué sucede si el usuario no tiene ninguna distribución ya?
Él / Ella puede descargarlo manualmente usando la URL en el .properties
archivo. Pero si él / ella no se localice en el camino que el envoltorio se esperaba, el envoltorio se descargará de nuevo! La ruta esperada es completamente predecible pero está fuera del tema (ver aquí la parte más compleja).
También hay algunas formas más fáciles (pero sucias). Por ejemplo, él / ella puede copiar archivos de contenedor (excepto el .properties
archivo) desde cualquier otro repositorio local / remoto a su repositorio y luego ejecutarlo gradlew
en su repositorio. Descargará automáticamente la distribución adecuada.