Co to jest „projekt”?
Może istnieje techniczna definicja tego idiomu, która wyklucza skrypty budowania. Ale jeśli zaakceptujemy tę definicję, to musimy powiedzieć, że twój „projekt” to nie wszystko, co musisz wersjonować!
Ale jeśli powiemy „Twój projekt”, to wszystko , co zrobiłeś . Wtedy możemy powiedzieć, że musisz to włączyć i tylko to do VCS.
Jest to bardzo teoretyczne i może nie praktyczne w przypadku naszych prac rozwojowych. Więc zmieniamy to na „ Twój projekt to każdy plik (lub folder), który musisz edytować bezpośrednio ”.
„bezpośrednio” oznacza „nie pośrednio”, a „pośrednio” oznacza edycję innego pliku, a efekt zostanie odzwierciedlony w tym pliku .
Więc dochodzimy do tego samego, co powiedział OP (i jest tutaj powiedziane ):
Myślę, że wygenerowane pliki nie powinny znajdować się w VCS.
Tak. Bo ty nie stworzył ich. Nie są więc częścią „Twojego projektu” zgodnie z drugą definicją.
Jaki jest wynik w przypadku tych plików:
build.gradle : Tak. Musimy to edytować. Nasze prace powinny być wersjonowane.
Uwaga: nie ma różnicy, gdzie go edytujesz. Czy to w środowisku edytora tekstu, czy w środowisku GUI struktury projektu . Zresztą pan robi to bezpośrednio !
gradle-wrapper.properties : Tak. Musimy przynajmniej określić wersję Gradle w tym pliku.
gradle-wrapper.jar i gradlew [.bat] : Do tej pory nie tworzyłem ani nie edytowałem ich w żadnej z moich prac rozwojowych! Tak więc odpowiedź brzmi „nie”. Jeśli to zrobiłeś, odpowiedź brzmi „Tak”, jeśli chodzi o Ciebie w tej pracy (i ten sam plik, który edytowałeś).
Ważna uwaga o najnowszych przypadku jest użytkownik, który klonuje swoje repo, musi wykonać to polecenie na repo<root-directory>
do automatycznego generowania otoki pliki:
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
i $distType
są określane na podstawie gradle-wrapper.properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Więcej informacji można znaleźć pod adresem https://gradle.org/install/ .
gradle
plik wykonywalny jest bin/gradle[.bat]
w dystrybucji lokalnej. Nie jest wymagane, aby dystrybucja lokalna była taka sama, jak określona w repozytorium. Po utworzeniu plików opakowującychgradlew[.bat]
można automatycznie pobrać określoną dystrybucję Gradle (jeśli nie istnieje lokalnie). Następnie prawdopodobnie musi zregenerować pliki opakowujące przy użyciu nowego gradle
pliku wykonywalnego (w pobranej dystrybucji) zgodnie z powyższymi instrukcjami.
Uwaga: w powyższych instrukcjach założono, że użytkownik ma lokalnie przynajmniej jedną dystrybucję Gradle (np ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
.). Obejmuje prawie wszystkie rzeczywiste przypadki. Ale co się stanie, jeśli użytkownik nie ma już żadnej dystrybucji?
Może ją pobrać ręcznie, korzystając z adresu URL w .properties
pliku. Ale jeśli nie zlokalizuje go w ścieżce, której oczekiwał opakowanie , opakowanie pobierze go ponownie! Oczekiwana ścieżka jest całkowicie przewidywalna, ale jest poza tematem (zobacz tutaj, aby zobaczyć najbardziej złożoną część).
Jest też kilka łatwiejszych (ale brudnych) sposobów. Na przykład może skopiować pliki opakowujące (z wyjątkiem .properties
plików) z dowolnego innego lokalnego / zdalnego repozytorium do swojego repozytorium, a następnie uruchomić je gradlew
w swoim repozytorium. Automatycznie pobierze odpowiednią dystrybucję.