有没有一种方法可以运行gradle任务并将其输出保存到shell变量中?

例如,让我们考虑打印模块版本的gradle任务:

task getVersion << {
    println '2.2.0'
}

我像这样在shell中运行此任务:
$./gradlew getVersion

是否可以将gradle任务 getVersion 的输出保存到shell变量中。例如:
VERSION=`./gradlew getVersion`
echo "Module Version is $VERSION"

最佳答案

在bash中,您可以这样操作:

VERSION=$(./gradlew -q getVersion | tail -n 1)
-q:将gradle输出设置为退出
| tail -n 1:仅在变量中使用输出的最后一行。可能不需要此部分,但是在打印实际输出之前,gradle有时会输出警告/错误。我在升级到gradle4.1时亲身经历了这一点。升级后还显示Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.

07-27 23:01