11

一定有一个简单的设置我错过了所以请原谅我,但我注意到有两次我的不良 ant 任务不会导致构建失败。例如:

  1. 源文件不存在时的 Ant 复制...构建成功

  2. Ant 解压缩,当任务报告“无法写入文件”或类似消息时...构建成功

  3. Ant exec 错误,语法无效...构建成功

如何保证所有 ant 任务错误都会导致构建失败?

4

2 回答 2

8
  • <EXEC>默认情况下,任务不会失败。您需要启用此功能failonerror="true"

  • Ant<COPY>任务的失败取决于所使用的资源集合类型。如果您使用filesetor patternset,那么所有丢失的文件都会被忽略。您只能通过使用filelist类型或使用参数化的“文件”属性来强制失败。

    因此,您要使用的是:

    <copy todir="my_dir" file="foo" />
    
    <copy todir="my_dir" flatten="true">
      <filelist dir="" files="foo" />
    </copy>
    
    <copy todir="my_dir" flatten="true">
      <filelist dir="">
         <file name="foo" />
         <file name="bar" />
         <file name="zed" />
      </filelist>
    </copy>
    
于 2012-09-24T21:31:23.250 回答
5

您是否尝试过以下操作:

<copy todir="your/path/details" failonerror="true">
</copy>

<zip destfile="your/path/details" whenempty="fail">
</zip>

<exec executable="your/path/details" failonerror="true">
</exec>
于 2012-09-21T02:37:35.197 回答