• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:Antで子フォルダのbuild.xmlを全部実行
#navi(../)
*Antで子フォルダのbuild.xmlを全部実行 [#h5bacd81]
#adsense2
>編集者:[[Terai Atsuhiro>aterai]]~
作成日:2007-02-16~
更新日:&lastmod;

#contents
#contents(none)

**概要 [#s9662e80]
Subantタスクを使って、一度に全部同じターゲットで子フォルダのbuild.xmlを実行します。

**サンプルbuild.xml [#eb647956]
#code{{
<?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>
}}

*解説 [#n229e4de]
このサイトの[[Java Swing Tips>Swing]]では、各Tipsごとにフォルダを作成してソースコードやbuild.xmlを管理しています。このため、ソースをxyzzyのgresregで一気に置換した場合(例えばLogger.global.infoをSystem.out.printlnに全部変換など)、一度に全部同じターゲットを実行できるように、サンプルのようなbuild.xmlを作成しています。
約180ほどTipsがあって、配布用のファイル(jar、jnlp、src.zipなど)をすべて生成するには、5分ぐらいかかります。

----
各targetをコピーするのが面倒な場合、以下のようにbuild.xmlを変更して、subantタスクに渡すターゲット名をプロパティにし-Dオプションで渡す方法もあります。

#code{{
<?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

*コメント [#p654e4a0]
#comment