首页 > 解决方案 > 如何在 buildFinished 中使用 commandLine()

问题描述

$HOME/.gradle/init.gradle我有:

gradle.buildFinished { buildResult ->
    commandLine 'bash', "blah blah blah"
}

构建gradle build成功,但成功后出现错误:

在 org.gradle.invocation.DefaultGradle 类型的构建 'FooBar' 上找不到参数 [bash, blah blah blah] 的方法 commandLine()。

问题的答案找不到方法 commandLine()无济于事,因为将整个事物放在(type: Exec)后面gradle.buildFinished或将整个事物包装进去exec { }都会导致 Gradle 从一开始就失败,而不是构建成功,然后我的构建后挂钩失败。

我正在使用 Gradle 6.3 版

标签: gradle

解决方案


你配置错误commandLine。具有以下内容build.gradle

task lol {
    doLast {
        println "lol"
    }
}

~/.gradle/init.gradle

gradle.buildFinished { buildResult ->
    exec { 
        commandLine 'bash', '-c', 'echo lol2'
    }
}

它按预期工作。


推荐阅读