为什么我出错时会成功建立BUILD?

时间:2017-07-18 11:08:53

标签: jenkins ant

我正在试验Jenkins和Ant。我想简单地运行我的Makefile来完成所有事情,构建和测试。

我发现最好的方法是使用Ant,因为我的构建过程与travis.yml类似,变得灵活。

不幸的是我使用的编译器只存在于Windows上,所以我在Windows上安装了Jenkins。我写了这个build.xml

<?xml version="1.0"?>
<project name="Hello World Project" default="info">

   <target name="info">
      <echo>Hello World - Welcome to Apache Ant!</echo>
      <exec executable="make"/>
   </target>

</project>

到目前为止我得到的输出就是这个:

C:\Program Files (x86)\Jenkins\workspace\test>exit 0 
[test] $ cmd.exe /C "ant.bat info && exit %%ERRORLEVEL%%"
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.8.0_131\lib\tools.jar
Buildfile: C:\Program Files (x86)\Jenkins\workspace\test\build.xml

info:
     [echo] Hello World - Welcome to Apache Ant!
     [exec] rm -f test_*.s
     [exec] arm-none-eabi-gcc.exe -O2 -Wall -S -c test.c -o test_gcc.s
     [exec] make: arm-none-eabi-gcc.exe: Command not found
     [exec] make: *** [Makefile:9: test_gcc.s] Error 127
     [exec] Result: 2

BUILD SUCCESSFUL
Total time: 0 seconds
Finished: SUCCESS

为什么我收到错误时会收到BUILD SUCCESSFUL状态?

N.B。我知道我必须配置我的PATH以包含工具链。我想首先理解这种不一致。

1 个答案:

答案 0 :(得分:2)

默认情况下,当返回错误代码时,Ant的exec任务不会使构建失败。但是,可以使用failonerror属性

简单地启用此功能
<exec executable="make" failonerror="true" />