ANT无法获取Python脚本返回的退出代码

9 投票
1 回答
9929 浏览
提问于 2025-04-15 23:44

我现在在一台Windows XP的电脑上,用ant来构建我的Java项目。在build.xml文件里,我定义了不同的任务,其中一个任务是执行一个Python脚本,用来分析应用程序的输出。

我想让ANT在脚本发现特定标签时失败。我尝试了以下方法:

sys.exit(1)

或者

os.system("EXIT 1")

特别是第二个方法,它会执行控制台命令EXIT,这样在批处理文件里执行时确实能让构建过程失败。不过,遗憾的是,ant无法从被调用的脚本中获取退出代码,结果还是正常进行到最后,显示“构建成功”的信息。

这个脚本是这样调用的:

<exec dir="${path}/scripts" executable="python">
        <arg line='log_analysis.py results.log" ' />
    </exec>

谢谢你的帮助

1 个回答

17

试试这个:

<exec dir="${path}/scripts" executable="python" failonerror="true">
    <arg line="log_analysis.py results.log" />
</exec>

默认情况下,Ant在命令执行出错时不会停止构建过程,也就是说即使出现了错误,它也会继续运行。要让它在出错时停止,你需要设置 failonerror="true"

撰写回答