Pada build gradle multiproyek, dapatkah seseorang memberi tahu saya apa sebenarnya perbedaan antara bagian "allprojects" dan "subprojects"? Hanya direktori induk? Apakah ada yang menggunakan keduanya? Jika ya, apakah Anda memiliki aturan umum yang menentukan apa yang biasanya diterapkan di setiap aturan?
Pertanyaan terkait: apa perbedaan antara kedua sintaks (sebenarnya untuk semua proyek DAN subproyek):
subprojects { ...
}
dan
configure(subprojects) { ...
}
Kapan Anda akan salah satu dari yang lain?
Menambah jawaban Ryan,
configure
metode menjadi penting ketika Anda ingin mengkonfigurasi subset objek kustom. Misalnyaconfigure([project(":foo"), project(":bar")]) { ... }
atauconfigure(tasks.matching { it.name.contains("foo") }) { ... }
.Kapan menggunakan
allprojects
vs.subprojects
tergantung pada keadaan. Seringkali Anda akan menggunakan keduanya. Misalnya, plugin terkait kode seperti plugin Java biasanya diterapkansubprojects
, karena dalam banyak build, project root tidak berisi kode apa pun. Plugin Eclipse dan IDEA, di sisi lain, biasanya diterapkan keallprojects
. Jika ragu, lihat contoh dan build dan / atau eksperimen lainnya. Tujuan umumnya adalah untuk menghindari konfigurasi yang tidak relevan. Dalam hal ini,subprojects
lebih baik daripadaallprojects
asalkan memberikan hasil yang diharapkan.sumber