Я нашел решение.Что касается моего первого примера, я просто хотел выполнить скрипт, который находится в корневом каталоге проекта, с конкретными аргументами для каждого подпроекта.Чтобы задача работала правильно, вам нужно определить задачу в закрытии subprojects
.Ниже приведен полностью рабочий пример для одной build.gradle
настройки.
Структура каталогов:
├─ a # Module 'a' folder
├─ b # Module 'b' folder
├─ build.gradle # Root project build file
├─ script # Executable bash script
└─ **/ # Other files and folder
script
#!/usr/bin/env sh
echo "$@"
build.gradle
subprojects { // Define the task here
task customExecTask(type: Exec) {
// Change the directory where the script resides
workingDir = rootDir
// Conditional arguments depending on each project modules.
// We'll use the property 'project.name' to determine the
// current project this task is running from
def customArgs = project.name == 'a' ? "Hello" : "World"
// Then execute the script with customArgs variable
commandLine './script', customArgs
// Or in Windows: commandLine 'cmd', '/c', 'script.bat'
}
}
project('a') {
build.dependsOn 'customExecTask'
}
project('b') {
build.dependsOn 'customExecTask'
}
Результат консоли:
$ gradle build
> Task :a:execute
Hello
> Task :b:execute
World