在 gradle 中执行 shell 脚本看不到回显输出



我正在使用这个问题在 Gradle 中执行 shell 脚本作为参考,但是,我不知道如何让它工作。

这是我的 gradle 文件:

...
task myPrebuildTask(type: Exec) {
    println "Hello world from gradle"
    commandLine 'sh', './myScript.sh'
}
build.dependsOn myPrebuildTask

我有这个 myScript.sh

#!/bin/sh
echo "来自脚本文件的你好世界"

但是,每当我运行脚本gradle assembleDebug时,我只能看到"来自 gradle 的 Hello world",而看不到"来自脚本文件的 Hello world"。

Yuchens-iMac:MyApplication yuchen$ gradle assembleDebug
Hello world from gradle
Incremental java compilation is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
...

为什么?

我把它放在一个新的build.gradle

defaultTasks 'myPrebuildTask'
task myPrebuildTask(type: Exec){
    println "Hello world from gradle"
    commandLine 'sh', './myScript.sh'
}

运行gradle -q结果是:

> gradle -q
Hello world from gradle
Hello world from the script file

显然,该任务可以很好地打印命令输出。

在你的情况下,可能会有几件事。您设置的任务依赖项可能不足以在调用gradle assembleDebug时触发自定义任务,或者由于两个打印行实际上以不同的 gradle 阶段打印,因此第二行可能位于日志中的其他位置 - 您尚未发布整个输出。

最新更新