Bunlardan hangilerinin peşinde olduklarından emin değilsiniz, ancak üslerinizi kapsamalıdır. görevleri çağrılması
1. doğrudan
sadece
gradle :other/projC:hello :other/projD:hello
Ben bu test çağırmak mümkün olmalıdır:
# Root/build.gradle
allprojects {
task hello << { task -> println "$task.project.name" }
}
ve
# Root/settings.gradle
include 'projA'
include 'projB'
include 'other/projC'
include 'other/projD'
2. Yalnızca alt projelerde görev oluşturma
Yoksa yalnızca diğer/* projelerde oluşturulan görevi mi istiyorsunuz?
Eğer ikincisi, ardından aşağıdaki çalışır:
# Root/build.gradle
allprojects {
if (project.name.startsWith("other/")) {
task hello << { task -> println "$task.project.name" }
}
}
ve daha sonra çağrılabilir:
$ gradle hello
:other/projC:hello
other/projC
:other/projD:hello
other/projD
3. alt proje sadece
görevleri çalıştıran bir görev oluşturma
Bu sürüm, sorgunuzun okunmasıyla eşleşiyor. Bu, alt projelerde (buildJar) zaten bir görev olduğu anlamına geliyor ve bir görev oluşturuluyor. Sadece alt projeleri arayacak kök diğer/*: buildJar
allprojects {
task buildJar << { task -> println "$task.project.name" }
if (project.name.startsWith("other/")) {
task runBuildJar(dependsOn: buildJar) {}
}
}
Bu bir görev her projede "buildJar" ve "runBuildJar" oluşturur diğer/* projelerde Arayabileceğin sadece, bu yüzden:
$ gradle runBuildJar
:other/projC:buildJar
other/projC
:other/projC:runBuildJar
:other/projD:buildJar
other/projD
:other/projD:runBuildJar
sorunuz birçok yol okunabilir, bu da onlara aynı sorun var çünkü bugün bu soruyu bulunan tüm :)
Cevabınız için teşekkürler. Seçeneklerin hiçbiri ihtiyaçlarıma uygun değildi: 1. Tüm alt projelerin listesini bilmemiz gerekiyor. 2 + 3. Build betiğinin değiştirilmesi gerekiyor. Sonunda, bunu başarmak için başka bir yol buldum ve yeni bir cevap olarak ekledim. – Marwin
@Marwin: Cevabınız nerede? Ilgilenirdi. – frhd
@frhd Aşağıdaki cevaba bakınız "gradle -p other hello" –