2

我还在学习如何很好地使用 ANT,我想了解是否有一些合理的方法可以在其中执行文件任务,类似于 Rake 和 Make:

http://martinfowler.com/articles/rake.html#FileTasks

“对于文件,您指的是实际文件而不是任务名称。因此,'build/dev/rake.html' 和 'dev/rake.xml' 是实际文件。html 文件是此任务和 xml 文件的输出是输入。您可以将文件任务视为告诉构建系统如何制作输出文件 - 实际上这正是 make 中的概念 - 您列出所需的输出文件并告诉 make 如何制作它们。

文件任务的一个重要部分是它不会运行,除非您需要运行它。构建系统查看文件并仅在输出文件不存在或其修改日期早于输入文件时运行任务。因此,当您逐个文件地考虑事物时,文件任务非常有效。”

换句话说,假设我想运行一个自定义二进制文件,并且我只希望该二进制文件在任何文件发生更改时运行。这与这个问题有关,但我根本不想运行二进制文件,不仅传递文件集的一部分(即文件集中只有一个,我根本不希望该工具运行) .

理想的解决方案也不会是一件冗长的事情,而是可以很容易地应用于任何目标——也许使用一些 ANT JavaScript 或自定义任务?

4

1 回答 1

1

使用ant-contrib outofdate task。它具有您所要求的属性。这是ant-contrib 网站

这是有关如何将其集成到您的构建中的模板:

<taskdef
  resource="net/sf/antcontrib/antlib.xml"
>
  <classpath>
    <pathelement location="${ant-contrib.jar}"/>
</taskdef>

<outofdate>
 <sourcefiles path="dev/rake.xml"/>
 <targetfiles path="build/dev/rake.html"/>
 <sequential>
   ... do your work here ...
   ... will only run if rake.html is older than rake.xml ...
 </sequential>
</outofdate>
于 2009-10-26T12:55:38.693 回答