Ant/Script の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Ant/Script へ行く。
- Ant/Script の差分を削除
--- title: AntのScriptタスク中でif文を使った条件分岐を行う author: aterai pubdate: 2011-01-14 description: AntのScriptタスク中でif文を使った条件分岐を行う方法をテストする。 --- #contents * 概要 [#summary] `Condition`タスク([[AntでConditionタスクを使った条件分岐を行う>Ant/Condition]])の条件が複雑になるようなら、以下のようにして`<script language="javascript">`タスクなどの中で`if`文を使う方法もあります。 * サンプルターゲット [#target] #code{{ <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> }} * 解説 [#explanation] 上記のサンプルでは、`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`ターゲットを取得し、実行 * 参考リンク [#reference] - [http://ant.apache.org/manual/Tasks/script.html Script Task] - [http://api.dpml.net/org/apache/ant/1.7.0/org/apache/tools/ant/Project.html Project (Apache Ant API) - Project] - [http://weblogs.java.net/blog/emcmanus/archive/2010/09/20/using-javascript-make-apache-ant-less-painful Using JavaScript to make Apache Ant less painful] - [https://ant.apache.org/manual/Tasks/script.html Script Task] - [https://ant.apache.org/manual/api/org/apache/tools/ant/Project.html Project (Apache Ant API)] // - [http://weblogs.java.net/blog/emcmanus/archive/2010/09/20/using-javascript-make-apache-ant-less-painful Using JavaScript to make Apache Ant less painful] * コメント [#comment] #comment #comment