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

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

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

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

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

理想的解决方案也不是一件好事,而是可以轻松应用于任何目标 - 也许使用一些ANT JavaScript或自定义任务?

有帮助吗?

解决方案

使用 ant-contrib outofdate任务。它具有您要求的属性。这是 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top