abdlkdr
abdlkdr

Reputation: 182

Execute Gradle command with Gradle task

I want to re-create verification-metadata.xml file with single click. I can create verification-metadata.xml with this command ./gradlew --write-verification-metadata sha256. I try to create Gradle Task inside the build.gradle(app) and execute, but it didn't work

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

rootDir is root directory of project.

This code gives me error;

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

How can I make it ?

Upvotes: 1

Views: 4463

Answers (2)

Alexander Peinsipp
Alexander Peinsipp

Reputation: 123

Are you working on windows machine?

We had the problem that on windows machine you have to call gradlew.bat

Example:

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

Upvotes: 2

George
George

Reputation: 2512

As a workaround for the issue, I use .bat or .sh scripts to be executed as the following.

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

This, for example, will execute the test.bat script, which only has one line

./gradlew --write-verification-metadata sha256

if you're using Linux/macOS, you can replace the .bat with .sh.

Upvotes: 0

Related Questions