Ant更好地<sleep>而不是跳过它

时间:2015-07-05 07:00:55

标签: java ant ant-contrib

我将20多个文件添加到具有各种包含和排除文件的文件集中。这需要一点时间,因此Ant会跳过Ant文件集上的依赖任务。它根本不会运行依赖操作。这是低效的。有没有人知道更好的方法来使文件集添加文件,然后执行依赖而不是跳过它?

这样做的一种方法是使用sleep https://ant.apache.org/manual/Tasks/sleep.html。我不能用waitfor。

示例:

<fileset id="scr" dir="dir1/*" casesensitive="yes"
           includes="bin/*, lib/*  excludes="dir1/*.py />

    <foreach param="file" in="scr">
             <echo message="${file}"/>                      
    </foreach>
</fileset>

上面的示例将完全跳过打印文件名,因为Ant仍在向fileset添加文件。

1 个答案:

答案 0 :(得分:2)

foreach任务不是ANT的一部分,它是第三方扩展,我并不完全确定它的设计是按照你的思维方式工作。

我可以建议您按如下方式打印文件集内容:

<apply executable="echo">
  <fileset dir="dir1/*" casesensitive="yes" includes="bin/*, lib/*  excludes="dir1/*.py />
</apply>

如果您想使用文件集引用,可以这样:

<fileset id="scr" dir="dir1/*" casesensitive="yes" includes="bin/*, lib/*  excludes="dir1/*.py />

<apply executable="echo">
  <fileset refid="scr"/>
</apply>

注意:

  • Ant不是一种编程语言,所以循环并不好玩。如果您需要复杂的逻辑,我强烈建议您嵌入脚本语言。我不推荐使用ant-contrib