Antで子フォルダのbuild.xmlを全部実行
Total: 13573
, Today: 2
, Yesterday: 1
Posted by aterai at
Last-modified:
概要
Subant
タスクを使って、一度に全部同じターゲットで子フォルダのbuild.xml
を実行します。
サンプルbuild.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="swingall" default="clean" basedir=".">
<target name="clean">
<subant target="clean">
<fileset dir="." includes="*/build.xml" />
</subant>
</target>
<target name="dist">
<subant target="dist">
<fileset dir="." includes="*/build.xml" />
</subant>
</target>
</project>
解説
このサイトのJava Swing Tipsでは、各Tips
ごとにフォルダを作成してソースコードやbuild.xml
を管理しています。このため、ソースをxyzzy
のgresreg
で一気に置換した場合(例えばLogger.global.info
をSystem.out.println
に全部変換など)、一度に全部同じターゲットを実行できるように、サンプルのようなbuild.xml
を作成しています。
各target
をコピーするのが面倒な場合、以下のようにbuild.xml
を変更して、subant
タスクに渡すターゲット名をプロパティにし-D
オプションで渡す方法もあります。
<?xml version="1.0" encoding="UTF-8"?>
<project name="swingall" default="all" basedir=".">
<target name="all">
<subant target="${st}">
<fileset dir="." includes="*/build.xml" />
</subant>
</target>
</project>
子ディレクトリにあるbuild.xml
のcompile
ターゲットをすべて実行することができます。
ant -Dst=compile