如果这个问题很愚蠢,请原谅,我刚刚接触 Ant 和 Java 组合一些 CI 解决方案的第二天,对 Ant 或 Java 几乎一无所知。
因此,如果(我的)java 程序作为构建中的一个步骤运行并决定构建必须失败,我希望构建失败。
我想过在 Java 程序中抛出一个未处理的异常,或者使用 System.exit() 来关闭 JVM,但它们看起来很糟糕。
如果 java 步骤决定应该让 ant 构建失败,是否有一种好方法?
最佳答案
对于<java>
任务,有一个属性failonerror
。如果将其设置为 yes
(或 true
),如果进程返回 0 以外的任何值,则构建将失败。
问题是,为了从 java 调用返回一些值,此调用必须 System.exit(value)
。为了让它不杀死你的 Ant ,你还需要提供 fork=true
在新的 JVM 中运行。
因此,java 调用可能如下所示:
<java jar="..."
fork="yes"
failonerror="yes">
</java>
当然,您也可以让 Java 程序实现 Ant 任务 API,并将其作为适当的 ant 任务加载/调用。然后它可以自己决定要做什么(并且也将更加可配置)。
关于java - 使 Ant 脚本中的 Java 步骤导致构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5686921/