Non sono sicuro di quale di questi cerchi, ma dovrebbero coprire le tue basi.
1. Richiamo dei compiti direttamente
Si dovrebbe solo essere in grado di chiamare
gradle :other/projC:hello :other/projD:hello
Ho provato questo con:
# Root/build.gradle
allprojects {
task hello << { task -> println "$task.project.name" }
}
e
# Root/settings.gradle
include 'projA'
include 'projB'
include 'other/projC'
include 'other/projD'
2. Solo la creazione di attività nei sottoprogetti
O è solo che si desidera l'attività creata negli altri/* progetti?
In quest'ultimo caso, poi le seguenti opere:
# Root/build.gradle
allprojects {
if (project.name.startsWith("other/")) {
task hello << { task -> println "$task.project.name" }
}
}
e può quindi essere chiamato con:
$ gradle hello
:other/projC:hello
other/projC
:other/projD:hello
other/projD
3. Creazione di un'attività che esegue le attività nei sottoprogetti solo
Questa versione corrisponde alla mia lettura della domanda indicando che esiste già un'attività nei sottoprogetti (buildJar) e la creazione di un'attività in radice che chiamare solo i sottoprogetti altra/*: buildJar
allprojects {
task buildJar << { task -> println "$task.project.name" }
if (project.name.startsWith("other/")) {
task runBuildJar(dependsOn: buildJar) {}
}
}
Questo crea un compito "buildJar" su ogni progetto, e "runBuildJar" sugli altri/* progetti solo, in modo da poter chiamare:
$ gradle runBuildJar
:other/projC:buildJar
other/projC
:other/projC:runBuildJar
:other/projD:buildJar
other/projD
:other/projD:runBuildJar
la tua domanda può essere letto molti modi, spero che questo copre tutti :)
Grazie per la risposta. Nessuna delle opzioni soddisfa le mie esigenze: 1. Abbiamo bisogno di conoscere l'elenco di tutti i sottoprogetti. 2 + 3. Lo script di compilazione deve essere modificato. Alla fine, ho trovato un altro modo per raggiungere questo obiettivo e l'ho aggiunto come una nuova risposta. – Marwin
@ Marwin: dov'è la tua risposta? Sarebbe interessato – frhd
@frhd Vedere la risposta qui di seguito 'gradle -p other hello' –