Не совсем уверен, какой из них вы после, но они должны покрывать ваши базы.
1. Вызов задачи непосредственно
Вы просто должны быть в состоянии назвать
gradle :other/projC:hello :other/projD:hello
Я испытал это с:
# Root/build.gradle
allprojects {
task hello << { task -> println "$task.project.name" }
}
и
# Root/settings.gradle
include 'projA'
include 'projB'
include 'other/projC'
include 'other/projD'
2. Только создание задач в подпроектах
Или вам нужна только задача, созданная по другим проектам/*?
Если последнее, то следующие работы:
# Root/build.gradle
allprojects {
if (project.name.startsWith("other/")) {
task hello << { task -> println "$task.project.name" }
}
}
и тогда можно назвать с:
$ gradle hello
:other/projC:hello
other/projC
:other/projD:hello
other/projD
3. Создание задачи, которая работает задачи в подпроектов только
Эта версия соответствует моему чтению вашего вопроса, означающего, что уже есть задача на подпроектах (buildJar) и создание задачи в корень, который будет вызывать только подпроекты другой/*: buildJar
allprojects {
task buildJar << { task -> println "$task.project.name" }
if (project.name.startsWith("other/")) {
task runBuildJar(dependsOn: buildJar) {}
}
}
Это создает задачу «buildJar» по каждому проекту, и «runBuildJar» на других/* проектов только, так что вы можете позвонить:
$ gradle runBuildJar
:other/projC:buildJar
other/projC
:other/projC:runBuildJar
:other/projD:buildJar
other/projD
:other/projD:runBuildJar
Ваш вопрос можно прочитать много способов, надеюсь, что это охватывает их все :)
Спасибо за ответ. Ни один из вариантов не отвечал моим потребностям: 1. Нам нужно знать список всех подпроектов. 2 + 3. Сценарий сборки необходимо изменить. Наконец, я нашел другой способ добиться этого и добавил его в качестве нового ответа. – Marwin
@Marwin: Где твой ответ? Было бы интересно. – frhd
@frhd См. Ответ ниже мой «gradle -p другой привет» –