Java 如何知道gradle过程已经结束?
我想让gradle运行进程,这样我就可以知道gradle任务已经结束。 我在我的机器上并行执行gradle任务,如下所示 在窗户里 在Mac中 它将并行触发所有gradle操作 我想在所有梯度任务结束后执行一个操作 如何知道这些gradle使用java或任何东西运行的流程Java 如何知道gradle过程已经结束?,java,shell,gradle,process,automation,Java,Shell,Gradle,Process,Automation,我想让gradle运行进程,这样我就可以知道gradle任务已经结束。 我在我的机器上并行执行gradle任务,如下所示 在窗户里 在Mac中 它将并行触发所有gradle操作 我想在所有梯度任务结束后执行一个操作 如何知道这些gradle使用java或任何东西运行的流程 提前感谢您可以在Bash中使用命令wait: ./gradlew runSuite1 -i --rerun-tasks & pids[0]=$! ./gradlew runSuite2 -i --rerun-task
提前感谢您可以在Bash中使用命令
wait
:
./gradlew runSuite1 -i --rerun-tasks &
pids[0]=$!
./gradlew runSuite2 -i --rerun-tasks &
pids[1]=$!
for pid in ${pids[*]}; do
wait $pid
done
有关更多信息,请参阅。我建议依赖对其本身的支持。这会让你的体验轻松得多 除非
runSuite1
和runSuite2
在同一个项目中,否则最新的Gradle版本将并行执行它们。注册这两个任务并执行所需的操作变得很简单
如果
runSuite1
和runSuite2
是并行的,并且它们的执行时间确实会从并行运行中受益,请查看是否可以将其中一个任务移动到另一个项目。主要目的是在所有任务都位于单个项目下的情况下并行运行程序。感谢您的建议@Louis Jacometer是否有一种方法可以在批处理文件中执行此操作,我尝试过,但它非常复杂,无法找到任何解决方案。它不像shell脚本那样工作。
./gradlew runSuite1 -i --rerun-tasks &
./gradlew runSuite2 -i --rerun-tasks &
./gradlew runSuite1 -i --rerun-tasks &
pids[0]=$!
./gradlew runSuite2 -i --rerun-tasks &
pids[1]=$!
for pid in ${pids[*]}; do
wait $pid
done