我在系统的默认临时文件夹中创建了一些带有自定义任务的临时文件。根据不同的配置,会有两到三个文件——一个是codebaseXX.log(XX部分表示Java为临时文件自动创建的数字字符串),另一个是本地更改XX.diff。
目前,在文件生成任务中,我将第一个文件的全名和"localchanges*.diff"放入两个属性(比如file1和file2)中。然后我用<copy>
:把它们复制回来
<copy todir="log/configs" >
<fileset dir="${tmpdir}">
<include name="${file1}" />
<include name="${file2}" />
</fileset>
</copy>
例如,我可能生成了以下文件:
代码库529846369165360813.log
local-changes-original5410491830492606676.差异
local-changes-simple77781114354296759394.diff(如果存在)
我想准确复制这次生成的内容(因为有些更改没有删除一些旧文件)并重命名它们,如下所示:
codebase.log
本地更改原始.diff
local-changes-simple.diff(如果存在)
我的问题是:我的任务确切地知道生成了哪些文件,但如何告诉其他任务应该处理这些文件?此外,如何巧妙地重命名它们
您是否考虑过使用ANT临时文件任务来为您管理这些临时文件?
您可以使用ant contrib库,它允许您拥有变量。在生成任务中,记住文件名并将其传递给其他任务。