Bir dizi netbeans projesi oluşturmak ve bir dizi ortama dağıtmak için bir dizi işlevselliği tamamlayan karmaşık bir gradle komut dosyam var.
Komut dosyası çok iyi çalışıyor, ancak özünde hepsi proje ve çevre bilgilerini tutan yarım düzine harita aracılığıyla yapılandırılıyor.
Görevleri başka bir dosyaya soyutlamak istiyorum, böylece haritalarımı basit bir yapı dosyasında tanımlayabilir ve görevleri diğer dosyadan içe aktarabilirim. Bu şekilde, bir dizi proje için aynı temel görevleri kullanabilir ve bu projeleri basit bir harita seti ile yapılandırabilirim.
Biri bana bir gradle dosyasını diğerine Ant'ın görevine benzer şekilde nasıl aktarabileceğimi söyleyebilir mi? Şimdiye kadar Gradle'ın belgelerini boşuna taradım.
İlave bilgi
Tom'un aşağıdaki cevabından sonra, tam olarak ne demek istediğimi açıklamaya çalışacağımı düşündüm.
Temel olarak birkaç alt proje çalıştıran bir gradle betiğim var. Bununla birlikte, alt projelerin tümü Netbeans projeleridir ve kendi karınca derleme komut dosyalarıyla birlikte gelir, bu yüzden bunların her birini çağırmak için aşamalı görevlerim var.
Benim sorunum, dosyanın en üstünde aşağıdaki gibi bazı yapılandırmalarım olması.
projects = [
[name:"MySubproject1", shortname: "sub1", env:"mainEnv", cvs_module="mod1"],
[name:"MySubproject2", shortname: "sub2", env:"altEnv", cvs_module="mod2"]
]
Daha sonra aşağıdaki gibi görevler oluşturuyorum:
projects.each({
task "checkout_$it.shortname" << {
// Code to for example check module out from cvs using config from 'it'.
}
})
Bu tür görev oluşturma parçacıklarının çoğuna sahibim ve hepsi geneldir - tamamen projeler listesindeki yapılandırmaya bağlıdırlar.
Yani istediğim, bunu ayrı bir komut dosyasına koymanın ve aşağıdaki şekilde içe aktarmanın bir yolu:
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.
Dolayısıyla bu örnekte, tasks.gradle tüm genel görev oluşturma koduna sahip olacak ve ana build.gradle dosyasında tanımlanan projeler için çalıştırılacaktır. Bu şekilde, tasks.gradle, Netbeans ant build dosyaları ile bir dizi alt projeden oluşan tüm büyük projeler tarafından kullanılabilen bir dosyadır.