AntのScriptタスク中でif文を使った条件分岐を行う
Total: 12530
, Today: 1
, Yesterday: 7
Posted by aterai at
Last-modified:
概要
Condition
タスク(AntでConditionタスクを使った条件分岐を行う)の条件が複雑になるようなら、以下のようにして<script language="javascript">
タスクなどの中でif
文を使う方法もあります。
サンプルターゲット
<target name="prepare-resource" depends="prepare">
<script language="javascript"><![CDATA[
importClass(java.io.File);
if(new File(project.getProperty("res.dir")).exists()) {
project.executeTarget("copy-resource");
}
]]></script>
</target>
<target name="copy-resource">
<mkdir dir="${build.res}" />
<copy todir="${build.res}">
<fileset dir="${res.dir}" excludes="**/*.properties.*, **/*.bak" />
</copy>
</target>
解説
上記のサンプルでは、Script
タスクでJavascript
(Rhino
)のif
文を使用しています。
res.dir
プロパティ(build.xml
などで設定済み)で指定したディレクトリ(文字列)を、project.getProperty("res.dir")
で取得importClass(java.io.File);
でインポートしたJava
のFile.class
を使って、存在するかどうかを判断new File(project.getProperty("res.dir")).exists()
- 存在する場合は、
project.executeTarget("copy-resource");
で、copy-resource
ターゲットを取得し、実行