【发布时间】:2010-06-16 19:09:39
【问题描述】:
这可能是一个初步的问题,但没有现成的答案。
我想创建一个连续调用 3 个任务的 shell 脚本,但要等到上一个任务完成。
像这样:
一个。通过 ant 调用第一个 Java 程序 湾。调用第三方 Java 应用程序 C。通过ant调用第三个Java程序
我想知道是否有办法检查并确保 a.在 b 之前完成。被称为 b 也是一样的。和 c。
谢谢
【问题讨论】:
标签: java command-line ant task
这可能是一个初步的问题,但没有现成的答案。
我想创建一个连续调用 3 个任务的 shell 脚本,但要等到上一个任务完成。
像这样:
一个。通过 ant 调用第一个 Java 程序 湾。调用第三方 Java 应用程序 C。通过ant调用第三个Java程序
我想知道是否有办法检查并确保 a.在 b 之前完成。被称为 b 也是一样的。和 c。
谢谢
【问题讨论】:
标签: java command-line ant task
默认情况下,ant 任务发生在前台,因此在每个 ant 任务完成之前,您的脚本不会继续执行。如果你想要相反的行为,你只需要搞砸事情:所有三个任务同时发生
【讨论】:
java some.package
if [ $? -ne 0 ]; then exit -1; fi;
java some.other.package
默认情况下,脚本内的调用是连续的。 如果第一次java执行'some.package'没有返回0,正常的退出代码,脚本会以-1退出而不执行'some.other.package'
【讨论】:
假设您在 *nix shell 中工作,想到的一个简单解决方案是使用 && 运算符按顺序执行所有三个命令:
#!/bin/sh
ant task -f build.xml && java org.mycompany.app && ant anothertask -f buld2.xml
&& 操作符使得
[...] 每个命令依次执行,前提是前一个命令的返回值为真(零)。在第一个 false(非零)返回时,命令链终止(第一个返回 false 的命令是最后一个执行 1)。
【讨论】: