如何在Gradle多项目构建的子项目目录中执行命令?

如何在Gradle多项目构建的子项目目录中执行命令?,gradle,Gradle,我有一个gradle多项目构建,每个子项目位于单独的git存储库中。在根项目的build.gradle中,我试图为所有子项目定义一个任务,它将为每个项目执行一些git命令。但是,任务的工作目录始终是根项目的工作目录 如何根据执行任务的当前子项目更改workingDir subprojects { task someTask{ def p1 = 'git rev-parse --abbrev-ref HEAD'.execute() p1.waitFor()

我有一个gradle多项目构建,每个子项目位于单独的git存储库中。在根项目的build.gradle中,我试图为所有子项目定义一个任务,它将为每个项目执行一些git命令。但是,任务的工作目录始终是根项目的工作目录

如何根据执行任务的当前子项目更改workingDir

subprojects {
    task someTask{
        def p1 = 'git rev-parse --abbrev-ref HEAD'.execute()
        p1.waitFor()
        println p1.exitValue()
    }
}
您可以使用Gradle任务,该任务使用项目目录作为默认工作目录。该任务还具有显式更改工作目录的选项(
workingDir

子项目{
任务someTask(类型:Exec){
命令行'git','rev parse','--abbrev ref','HEAD'
多拉斯特{
logger.lifecycle('退出值为'+execResult.exitValue)
}
}
}