Saya memiliki skrip gradle kompleks yang merangkum banyak fungsi di sekitar membangun dan menyebarkan sejumlah proyek netbeans ke sejumlah lingkungan.
Skrip ini bekerja dengan sangat baik, tetapi pada intinya semuanya dikonfigurasi melalui setengah lusin peta yang menyimpan informasi proyek dan lingkungan.
Saya ingin memisahkan tugas ke file lain, sehingga saya dapat dengan mudah mendefinisikan peta saya dalam file build sederhana, dan mengimpor tugas dari file lain. Dengan cara ini, saya dapat menggunakan tugas inti yang sama untuk sejumlah proyek dan mengonfigurasi proyek tersebut dengan satu set peta sederhana.
Adakah yang bisa memberi tahu saya bagaimana saya dapat mengimpor satu file gradle ke file lain, dengan cara yang mirip dengan tugas Ant? Sejauh ini saya telah memeriksa dokumen Gradle tanpa hasil.
Informasi tambahan
Setelah tanggapan Tom di bawah ini, saya pikir saya akan mencoba dan menjelaskan dengan tepat apa yang saya maksud.
Pada dasarnya saya memiliki skrip gradle yang menjalankan sejumlah subproyek. Namun, subproyek adalah semua proyek Netbeans, dan datang dengan skrip ant build mereka sendiri, jadi saya punya tugas di gradle untuk memanggil masing-masing ini.
Masalah saya adalah saya memiliki beberapa konfigurasi di bagian atas file, seperti:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Saya kemudian menghasilkan tugas seperti:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
Saya memiliki banyak cuplikan pembuatan tugas semacam ini, dan semuanya generik - semuanya bergantung pada konfigurasi dalam daftar proyek.
Jadi yang saya inginkan adalah cara untuk meletakkan ini dalam skrip terpisah dan mengimpornya dengan cara berikut:
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
import("tasks.gradle") // This will import and run the script so that all tasks are generated for the projects given above.
Jadi dalam contoh ini, task.gradle akan memiliki semua kode pembuatan tugas generik, dan akan dijalankan untuk proyek yang ditentukan dalam file build.gradle utama. Dengan cara ini, task.gradle adalah file yang dapat digunakan oleh semua proyek besar yang terdiri dari sejumlah sub-proyek dengan file build ant Netbeans.