[ www.notava.org > メモ > Antテンプレート ]


個人的なメモですから、もちろん無保証・自己責任で。

Antテンプレート


作ったプログラムを配布しない

サンプル一式

1.空のディレクトリを作って、そこに次の内容の build.xml という名前のファイルを作ります。

<?xml version="1.0"?>
<project default="compile">
  <property name="src.dir" value="src" />
  <property name="classes.dir" value="classes" />

  <target name="compile">
    <mkdir dir="${classes.dir}"/>
    <javac srcdir="${src.dir}" destdir="${classes.dir}" />
  </target>

  <target name="clean">
    <delete dir="${classes.dir}"/>
  </target>
</project>

2.1で作ったディレクトリの下に src という名前のディレクトリを作り、そこにソースファイルをおきます。

3.ant で src 以下の *.java ファイルをコンパイルして、classes という名前のディレクトリに *.class ファイルを格納します。ant clean で classes 以下を削除します。

4.時々コンパイルすべきファイルの判定に失敗するので、挙動がおかしいときは ant clean comile として強制的に全ファイルをコンパイルします。


作ったプログラムを配布したい

サンプル一式

1.空のディレクトリを作って、そこに次のような内容の build.xml という名前のファイルを作ります。hello はプログラムの名前、1.1 はバージョンを表すように書き換えます。

<?xml version="1.0"?>
<project default="compile">
  <property name="name" value="hello" />
  <property name="version" value="1.1" />
  
  <property name="src.dir" value="src" />
  <property name="classes.dir" value="classes" />
  <property name="lib.dir" value="lib" />
  <property name="tmp.dir" value="tmp" />
  <property name="dist.dir" value="${name}-${version}" />
  <property name="distsrc.dir" value="${dist.dir}-src" />
  
  <target name="compile">
    <mkdir dir="${classes.dir}" />
    <javac srcdir="${src.dir}" destdir="${classes.dir}" />
  </target>
  
  <target name="clean">
    <delete dir="${classes.dir}" />
    <delete dir="${lib.dir}" />
    <delete dir="${tmp.dir}" />
  </target>
  
  <target name="build" depends="compile">
    <mkdir dir="${lib.dir}" />
    <jar jarfile="${lib.dir}/${name}.jar" basedir="${classes.dir}" manifest="${src.dir}/META-INF/MANIFEST.MF">
      <fileset dir="${classes.dir}">
        <exclude name="META-INF/MANIFEST.MF" />
      </fileset>
    </jar>
  </target>
  
  <target name="dist">
    <delete dir="${tmp.dir}/${distsrc.dir}" />
    <mkdir dir="${tmp.dir}/${distsrc.dir}" />
    <copy todir="${tmp.dir}/${distsrc.dir}">
      <fileset dir="./" excludes="${tmp.dir}" />
    </copy>
    <ant dir="${tmp.dir}/${distsrc.dir}" target="clean" inheritAll="false" />
    <zip zipfile="${tmp.dir}/${distsrc.dir}.zip" basedir="${tmp.dir}" includes="${distsrc.dir}/**" />
    
    <ant dir="${tmp.dir}/${distsrc.dir}" target="build" inheritAll="false" />
    <delete dir="${tmp.dir}/${dist.dir}" />
    <copy todir="${tmp.dir}/${dist.dir}">
      <fileset dir="${tmp.dir}/${distsrc.dir}">
        <exclude name="${src.dir}/**" />
        <exclude name="${classes.dir}/**" />
        <exclude name="${tmp.dir}/**" />
        <exclude name="build.xml" />
      </fileset>
    </copy>
    <zip zipfile="${tmp.dir}/${dist.dir}.zip" basedir="${tmp.dir}" includes="${dist.dir}/**" />
  </target>
</project>

2.src という名前のディレクトリを作り、そこにソースファイルをおきます。

次のコマンドが使えます。

ant もしくは ant compile
src 以下の *.java ファイルをコンパイルして、classes という名前のディレクトリに *.class ファイルを格納します。
ant build
上に加えて、classes 以下のファイルを、lib/hello.jar にまとめます。
ant dist
tmp ディレクトリの下に、ソースファイル配布用と実行ファイル配布用のアーカイブを作ります。
ant clean
classes, lib, tmp 以下を削除します。