使用 Gradle 任务执行 Gradle 命令

Execute Gradle command with Gradle task

我想通过单击重新创建验证-metadata.xml 文件。我可以用这个命令./gradlew --write-verification-metadata sha256创建验证-metadata.xml。我尝试在 build.gradle(app) 中创建 Gradle 任务并执行,但没有成功

task verificationMeta(type: Exec) {
    workingDir "${rootDir}"
    commandLine './gradlew ', '--write', '-verification', '-metadata', ' sha256'
    doLast {
        println "Executed!"
    }
}

rootDir为项目根目录。

此代码出错;

Execution failed for task ':verificationMeta'.
> A problem occurred starting process 'command './gradlew ''

我怎样才能做到?

你在 windows 机器上工作吗?

我们遇到了一个问题,在 windows 机器上你必须调用 gradlew.bat

示例:

task prodRepackage(type: Exec) {
    group = "Build"
    if (OperatingSystem.current().isWindows()) {
        executable "gradlew.bat"
        args "-Pprod", "bootJar"
    } else {
        executable "./gradlew"
        args "-Pprod", "bootJar"
    }
}

作为该问题的解决方法,我使用 .bat 或 .sh 脚本按如下方式执行。

task executeCMD(type:Exec) {
  workingDir '.'
  commandLine 'test.bat'
     doLast {
         println "Executed!"
     }
 }

例如,这将执行 test.bat 脚本,该脚本只有一行

./gradlew --write-verification-metadata sha256

如果您正在使用 Linux/macOS,您可以将 .bat 替换为 .sh。