Apa itu "proyek"?
Mungkin ada definisi teknis dari idiom ini yang mengecualikan skrip membangun. Tetapi jika kami menerima definisi ini, maka kami harus mengatakan "proyek" Anda tidak semua hal yang perlu Anda ubah versi!
Tetapi jika kami mengatakan "proyek Anda" adalah semua yang telah Anda lakukan . Maka kita dapat mengatakan Anda harus memasukkannya dan hanya itu ke dalam VCS.
Ini sangat teoretis dan mungkin tidak praktis jika pengembangan kami berjalan. Jadi kami mengubahnya menjadi " proyek Anda adalah setiap file (atau folder) yang Anda butuhkan untuk mengeditnya secara langsung ".
"secara langsung" berarti "tidak secara tidak langsung" dan "secara tidak langsung" berarti dengan mengedit file lain dan kemudian suatu efek akan tercermin ke dalam file ini .
Jadi kita mencapai hal yang sama seperti yang dikatakan OP (dan dikatakan di sini ):
Saya pikir file Generated tidak boleh dalam VCS.
Iya. Karena Anda belum membuatnya. Jadi mereka bukan bagian dari "proyek Anda" sesuai dengan definisi kedua.
Apa hasil dari file-file ini:
build.gradle : Ya. Kami perlu mengeditnya. Karya kami harus diversi.
Catatan: Tidak ada perbedaan di mana Anda mengeditnya. Baik di lingkungan editor teks Anda atau di lingkungan Struktur Proyek GUI. Pokoknya Anda melakukannya secara langsung !
gradle-wrapper.properties : Ya. Setidaknya kita perlu menentukan versi Gradle dalam file ini.
gradle-wrapper.jar dan gradlew [.bat] : Saya belum membuat atau mengeditnya di salah satu karya pengembangan saya, sampai saat ini! Jadi jawabannya adalah "Tidak". Jika Anda telah melakukannya, jawabannya adalah "Ya" tentang Anda di kantor itu (dan tentang file yang sama yang Anda edit).
Catatan penting tentang kasing terakhir adalah pengguna yang mengkloning repo Anda, perlu menjalankan perintah ini di repo<root-directory>
untuk menghasilkan berkas pembungkus otomatis :
> gradle wrapper --gradle-version=$v --distribution-type=$distType
$v
dan $distType
ditentukan dari gradle-wrapper.properties :
distributionUrl=https\://services.gradle.org/distributions/gradle-{$v}-{$distType}.zip
Lihat https://gradle.org/install/ untuk informasi lebih lanjut.
gradle
executable bin/gradle[.bat]
dalam distribusi lokal. Tidak diperlukan bahwa distribusi lokal sama dengan yang ditentukan dalam repo. Setelah file wrapper dibuat maka gradlew[.bat]
dapat mengunduh distribusi Gradle yang ditentukan secara otomatis (jika tidak ada secara lokal). Maka ia mungkin harus membuat ulang file wrapper menggunakan gradle
executable baru (dalam distribusi yang diunduh) menggunakan instruksi di atas.
Catatan: Dalam instruksi di atas, seharusnya pengguna memiliki setidaknya satu distribusi Gradle secara lokal (mis ~/.gradle/wrapper/dists/gradle-4.10-bin/bg6py687nqv2mbe6e1hdtk57h/gradle-4.10
.). Ini mencakup hampir semua kasus nyata. Tetapi apa yang terjadi jika pengguna belum memiliki distribusi?
Ia dapat mengunduhnya secara manual menggunakan URL dalam .properties
file. Tetapi jika dia tidak menemukannya di jalan yang diharapkan oleh pembungkus , pembungkus akan mengunduhnya lagi! Jalur yang diharapkan benar-benar dapat diprediksi tetapi berada di luar subjek (lihat di sini untuk bagian paling rumit).
Ada juga beberapa cara yang lebih mudah (tapi kotor). Sebagai contoh, ia dapat menyalin file pembungkus (kecuali .properties
file) dari repositori lokal / jauh ke repositori dan kemudian menjalankan gradlew
repositori. Secara otomatis akan mengunduh distribusi yang sesuai.