如果问题是愚蠢的,请原谅,我只是第二天在Ant上和Java一起攻击一些CI解决方案,而不知道Ant或Java.
所以我希望构建失败如果(我的)java程序作为构建中的一个步骤运行,则决定构建必须失败.
我想过只是在Java程序中抛出一个未处理的异常,或者使用System.exit()来关闭JVM,但它们看起来非常讨厌.
如果一个java步骤决定它应该有一个很好的方式蚂蚁失败的构建?
对于<java>任务,有一个属性failonerror.如果将其设置为yes(或true),则如果进程返回0以外的任何内容,则构建将失败.
问题是,为了从java调用返回一些值,这个调用必须System.exit(value).为了不杀死你的蚂蚁,你还需要提供fork=true在新的JVM中运行.
所以,java调用可能如下所示:
<java jar="..."
fork="yes"
failonerror="yes">
</java>
Run Code Online (Sandbox Code Playgroud)
当然,您也可以让Java程序实现Ant Task API并将其作为正确的ant任务加载/调用.然后它可以自己决定做什么(并且也将更加可配置).