Was ist das "Projekt"?
Möglicherweise gibt es eine technische Definition dieser Redewendung, die Build-Skripte ausschließt. Aber wenn wir diese Definition akzeptieren, müssen wir sagen, dass Ihr "Projekt" nicht alles ist, was Sie versionieren müssen!
Aber wenn wir sagen "Ihr Projekt" ist alles , was Sie getan haben . Dann können wir sagen, dass Sie es und nur es einschließen müssen in VCS aufnehmen müssen.
Dies ist sehr theoretisch und bei unseren Entwicklungsarbeiten möglicherweise nicht praktikabel. Deshalb ändern wir es in " Ihr Projekt ist jede Datei (oder jeder Ordner), die Sie benötigen, um sie direkt zu bearbeiten ".
"direkt" bedeutet "nicht indirekt" und "indirekt" bedeutet durch Bearbeiten einer anderen Datei, und dann wird ein Effekt in dieser Datei wiedergegeben .
Also haben wir das gleiche erreichen , dass OP sagte (und gesagt wird , hier ):
Ich denke, generierte Dateien sollten nicht im VCS sein.
Ja. Weil du sie nicht erstellt hast . Sie sind also gemäß der zweiten Definition nicht Teil von "Ihrem Projekt".
Was ist das Ergebnis dieser Dateien:
build.gradle : Ja. Wir müssen es bearbeiten. Unsere Werke sollten versioniert sein.
Hinweis: Es gibt keinen Unterschied, wo Sie es bearbeiten. Ob in Ihrer Texteditor-Umgebung oder in der Projektstruktur- GUI-Umgebung. Wie auch immer, du machst es direkt !
gradle-wrapper.properties : Ja. Wir müssen mindestens die Gradle-Version in dieser Datei bestimmen.
gradle-wrapper.jar und gradlew [.bat] : Ich habe sie bis jetzt in keiner meiner Entwicklungsarbeiten erstellt oder bearbeitet! Die Antwort lautet also "Nein". Wenn Sie dies getan haben, lautet die Antwort "Ja" über Sie bei dieser Arbeit (und über dieselbe Datei, die Sie bearbeitet haben).
Der wichtige Hinweis über den aktuellen Fall ist der Benutzer, Ihre Repo - Klone auf diesen Befehl ausführen muss Repo<root-directory>
zu automatisch generieren Wrapper - Dateien:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
und $distType
werden aus gradle-wrapper.properties bestimmt :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Weitere Informationen finden Sie unter https://gradle.org/install/ .
gradle
Die ausführbare Datei befindet sich bin/gradle[.bat]
in lokaler Verteilung. Es ist nicht erforderlich, dass die lokale Verteilung mit der im Repo festgelegten übereinstimmt. Nachdem Wrapper-Dateien erstellt wurden, gradlew[.bat]
kann die bestimmte Gradle-Verteilung automatisch heruntergeladen werden (falls nicht lokal vorhanden). Dann muss er / sie wahrscheinlich Wrapper-Dateien unter Verwendung einer neuen gradle
ausführbaren Datei (in heruntergeladener Distribution) unter Verwendung der obigen Anweisungen neu generieren.
Hinweis: In den obigen Anweisungen wird davon ausgegangen, dass der Benutzer lokal mindestens eine Gradle-Verteilung hat (z ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
. B. ). Es deckt fast alle realen Fälle ab. Aber was passiert, wenn der Benutzer noch keine Distribution hat?
Er / Sie kann es manuell über die URL in der .properties
Datei herunterladen . Wenn er es jedoch nicht in dem Pfad findet, den der Wrapper erwartet hat, lädt der Wrapper es erneut herunter! Der erwartete Pfad ist vollständig vorhersehbar, liegt jedoch außerhalb des Themas (siehe hier) für den komplexesten Teil).
Es gibt auch einige einfachere (aber schmutzige) Wege. Beispielsweise kann er Wrapper-Dateien (außer .properties
Dateien) von jedem anderen lokalen / Remote-Repository in sein Repository kopieren und dann in seinem Repository ausführen gradlew
. Es wird automatisch die passende Distribution heruntergeladen.