java - 使 Ant 脚本中的 Java 步骤导致构建失败

标签 java ant

如果这个问题很愚蠢,请原谅,我刚刚接触 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/

相关文章:

java - 如何在java中创建一个相机来改变视角?

java - 如有必要,插入类型转换以保持类型安全

android - 如何在 Android 测试项目(ant 构建)中引用库项目

java - java中的字符串替换,类似于速度模板

java - 我更改了jre,现在所有程序都有错误

java - linux下使用ant的tar任务时如何指定子目录的权限?

java - Ant : moving a file into a target directory

java - 使用 ANT 构建时出现 "Build Failed: failed to create task or type classpath"

java - 为什么我的代码只输出字符串是平衡的

在 Windows 中从命令行构建 Android