Qual è il "progetto"?
Forse esiste una definizione tecnica di questo linguaggio che esclude gli script di build. Ma se accettiamo questa definizione, allora dobbiamo dire che il tuo "progetto" non è tutto ciò di cui hai bisogno per la versione!
Ma se diciamo "il tuo progetto" è tutto ciò che hai fatto . Quindi possiamo dire che devi includerlo e solo esso in VCS.
Questo è molto teorico e forse non pratico nel caso dei nostri lavori di sviluppo. Quindi lo cambiamo in "il tuo progetto è ogni file (o cartella) che devi modificare direttamente ".
"direttamente" significa "non indirettamente" e "indirettamente" significa modificando un altro file e quindi un effetto si rifletterà in questo file .
Quindi raggiungiamo lo stesso che ha detto OP (e si dice qui ):
Penso che i file generati non dovrebbero essere nel VCS.
Sì. Perché tu non li hai creato. Quindi non fanno parte del "tuo progetto" secondo la seconda definizione.
Qual è il risultato di questi file:
build.gradle : Sì. Dobbiamo modificarlo. I nostri lavori dovrebbero essere sottoposti a versione.
Nota: non vi è alcuna differenza nel punto in cui lo si modifica. Sia nell'ambiente dell'editor di testo che nell'ambiente della GUI di Project Structure . Comunque lo fai direttamente !
gradle-wrapper.properties : Sì. Dobbiamo almeno determinare la versione Gradle in questo file.
gradle-wrapper.jar e gradlew [.bat] : non li ho creati o modificati in nessuno dei miei lavori di sviluppo, fino ad ora! Quindi la risposta è no". Se lo hai fatto, la risposta è "Sì" su di te in quel lavoro (e sullo stesso file che hai modificato).
La nota importante sull'ultimo caso è l'utente che clona il tuo repository, deve eseguire questo comando sui repository<root-directory>
per generare automaticamente i file wrapper:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
e $distType
sono determinati da gradle-wrapper.properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Vedi https://gradle.org/install/ per maggiori informazioni.
gradle
l'eseguibile è bin/gradle[.bat]
nella distribuzione locale. Non è necessario che la distribuzione locale sia uguale a quella determinata nel repository. Dopo aver creato i file wrapper, ègradlew[.bat]
possibile scaricare automaticamente la determinata distribuzione Gradle (se non esiste localmente). Quindi probabilmente deve rigenerare i file wrapper usando il nuovo gradle
eseguibile (nella distribuzione scaricata) usando le istruzioni sopra.
Nota: nelle istruzioni precedenti, si suppone che l'utente abbia almeno una distribuzione Gradle localmente (ad es ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
.). Copre quasi tutti i casi reali. Ma cosa succede se l'utente non ha già alcuna distribuzione?
Lui / Lei può scaricarlo manualmente usando l'URL nel .properties
file. Ma se lui / lei non localizzarlo nel percorso che l' involucro previsto, l'involucro sarà scaricarlo di nuovo! Il percorso previsto è completamente prevedibile ma è fuori tema (vedi qui per la parte più complessa).
Ci sono anche alcuni modi più semplici (ma sporchi). Ad esempio, può copiare i file wrapper (tranne i .properties
file) da qualsiasi altro repository locale / remoto nel proprio repository e quindi eseguirli gradlew
sul proprio repository. Scarica automaticamente la distribuzione adatta.