tempfileタスク覚書
はじめに
最初に結論を言うとこんな.
- タスクを実行には,ファイル名は決まるがファイルはできない.
createfile="true"
を指定すると,タスク実行時にファイルができる.- ant終了時に一時ファイルを削除する場合は
deleteonexit="true"
を指定する.
タスク実行時には,ファイル名は決まるがファイルはできない
以下のbuild.xml
をantで実行する.sleepしている間にファイルを確認しても一時ファイルはできていない.
<!-- build.xml -->
<project name="temp-file" default="default">
<target name="default">
<tempfile property="temp.file"/>
<echo>${temp.file}</echo>
<echo>sleep begin.</echo>
<sleep seconds="5"/>
<echo>sleep end.</echo>
</target>
</project>
$ ant &
[1] 1816
$ Buildfile: /usr/home/foo/test/build.xml
default:
[echo] /usr/home/foo/test/null891780157
[echo] sleep begin.
$ ls
build.xml
$ [echo] sleep end.
BUILD SUCCESSFUL
Total time: 5 seconds
[1] 終了 ant
$ ls
build.xml
一時ファイルに何か出力するとファイルはできる(当たり前だが).
<!-- build.xml -->
<project name="temp-file" default="default">
<target name="default">
<tempfile property="temp.file"/>
<echo>${temp.file}</echo>
<echo file="${temp.file}">foo</echo>
</target>
</project>
$ ls
build.xml null877489431
$ cat null*
foo
タスク実行時にファイルを作る
以下のbuild.xml
をantで実行すると,タスク実行時にファイルができる.createfile="true"
を指定している.
<!-- build.xml -->
<project name="temp-file" default="default">
<target name="default">
<tempfile property="temp.file" createfile="true"/>
<echo>${temp.file}</echo>
</target>
</project>
$ ls
build.xml
$ ant
Buildfile: /usr/home/foo/test/build.xml
default:
[echo] /usr/home/foo/test/null968399343
BUILD SUCCESSFUL
Total time: 0 seconds
$ ls
build.xml null968399343
ant終了時に一時ファイルを削除
終了時に一時ファイルを削除する場合はdeleteonexit="true"
を指定する.
<!-- build.xml -->
<project name="temp-file" default="default">
<target name="default">
<tempfile property="temp.file" deleteonexit="true"/>
<echo>${temp.file}</echo>
<echo file="${temp.file}">foo</echo>
</target>
</project>
$ ls
build.xml
$ ant
Buildfile: /usr/home/foo/test/build.xml
default:
[echo] /usr/home/foo/test/null40491443
BUILD SUCCESSFUL
Total time: 0 seconds
$ ls
build.xml
実行環境
- ant 1.9.7
- FreeBSD 11.0