アキはフリーランスのプログラマーです >> Java >> Ant >> 索引

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース

available

■公式Manual

コンディション(conditon)系

説明

指定のリソースが存在する場合、プロパティーに値を入れます。

リソースはクラスやファイルなどです。


ここで見つかったかどうかで動作を分岐させるには、

targetにifやunless属性を指定する方法がいいのかな?

属性

【共通属性】


classname

【参照】

[classname/file/resourceのいずれかが必須]

ここで指定したClassを探します。

見つかった場合はproperty属性へ値を入れます。

classpath

【参照】

classname又はresourceを探す元となる、クラスパスを指定します。classpath要素を含ませる方法もあります。

classpathref

【参照】

クラスパスを参照(id)で指定します。

file

【参照】

[classname/file/resourceのいずれかが必須]

ここで指定したファイルを探します。

見つかった場合はproperty属性へ値を入れます。

filepath

【参照】

fileを探す元となるパスを指定します。

filepath要素を含ませる方法もあります。

ignoresystemclasses

【参照】

デフォルトはfalse

classnameを探索時、Antの実行Classは無視します。

property

【参照】

[必須項目]

[文字列]

リソースが見つかったときに、指定したpropertyへ値を入れます。

値はvalue属性で指定します。指定がない場合はデフォルト値のtrueが入ります。

resource

【参照】

[classname/file/resourceのいずれかが必須]

ここで指定したリソースを探します。

見つかった場合はproperty属性へ値を入れます。

リソースはclassnameと同じよう、package.リソース名で指定します。


[例]

org.jpn.xucker.ant.my.properties

type

【参照】

[file/folder]

fileを探す時に、fileのみか、folderのみを探すかを指定します。

もし何も指定がなければ、file又はfolderを探します。

value

【参照】

[文字列] デフォルトはtrue

リソースが見つかったときに、propertyへいれる値

含む

classpath

filepath

含まれる

condition

waitfor

サンプル

システム以外に、Antクラスがあるか?(あまり使う例じゃありませんが)

<target name="availabel">
<available classname="org.apache.tools.ant.Main"  ignoresystemclasses="true" property="ant"></available>
<echo message="${ant}"/>
</target>

特定のAPIがない場合にエラーをわかりやすく表示する。この例はXerces

たまに、taskdefがうまくいかないだけでどのクラスがないかわからないから。

<target name="availabel">
<available classname="org.apache.xerces.parsers.DOMParser"  property="xerces">
</available>
<antcall target="xerces_not_found" inheritall="true"/>
<echo message="do something"/>
</target>

<target name="xerces_not_found" unless="xerces">
<echo message="xerces not found"/>
<fail/>
</target>

ファイルがない場合に、初期値を入れたファイルを作る。

<target name="availabel">
<available file="tmp.txt"  property="myfile">
</available>
<antcall target="file_not_found" inheritall="true"/>
<loadfile property="file_property" srcfile="tmp.txt" />
<echo message="${file_property}"/>
</target>

<target name="file_not_found" unless="myfile">
<echo message="default_value" file="tmp.txt"/>
</target>

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース