gpt4 book ai didi

gradle - 如何从 Gradle 运行 shell 脚本并等待它完成

转载 作者:行者123 更新时间:2023-12-04 12:40:23 25 4
gpt4 key购买 nike

我正在从 gradle 运行一个 shell 脚本,问题是 shell 脚本正在运行一些我需要在 gradle 继续之前运行的先决条件。

我尝试了以下操作,但似乎 gradle 正在为 shell 脚本打开另一个子进程

sleep.sh
echo 'hi1'
sleep 1
echo 'hi2'
sleep 10
echo 'bye'


Gradle:
task hello3(type: Exec) {
println 'start gradle....'
commandLine 'sh','sleep.sh'
println 'end gradle....'
}



Result:
start gradle....
end gradle....
:hello3
hi1
hi2
bye

最佳答案

你的问题是你的 println 语句在 Gradle 解析 build.gradle 文件时执行,而不是在它执行任务时执行。

您应该将 println 语句移动到 doFirst 和 doLast 如下,以使事情更清楚:

task hello3(type: Exec) {
doFirst {
println 'start gradle....'
}
commandLine 'sh','sleep.sh'
doLast {
println 'end gradle....'
}
}

我相信,Gradle 实际上在做任何其他事情之前等待脚本完成,所以你不需要做任何特殊的事情来让它等待。

Gradle 将始终在子进程中启动您的 shell 脚本。

关于gradle - 如何从 Gradle 运行 shell 脚本并等待它完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com