Ant


Javaのプログラムを書いているとき,Makefile書くの面倒だなーとか思っていた ら世の中にはAntという ものがあるらしい. これがえらく便利. 使い方は簡単で,ソースディレクトリの トップディレクトリに build.xml を置いて,以下のように実行するだけ.
   % export ANT_HOME=/usr/local/ant
   % export JAVA_HOME=/usr/local/jdk1.3.1
   % ant
こうすると,変更した.javaファイルと,それに関連するものだけをコンパイル してくれる.
build.xmlには依存関係を書いておくんだけど,直感的にわかるので簡単.

<project name="Foobar" default="compile" basedir=".">
  <property name="src" location="src"/>
  <property name="build" location="classes"/>
  <property name="dist" value="foobar.jar"/>
  <target name="compile">
    <javac srcdir="${src}" destdir="${build}">
	  <classpath>
	    <pathelement location="/home/funa/SBW/lib/SBWCore.jar"/>
	    <pathelement location="exec/graph.jar"/>
	    <pathelement location="exec/sbml.jar"/>
	    <pathelement path="${build}"/>
	  </classpath>
      <sourcepath>
        <pathelement path="${src}"/>
      </sourcepath>
	  <exclude name="**/depricated/*.java"/>
	</javac>
  </target>
  <target name="dist" depends="compile">
    <jar destfile="${dist}" basedir="${build}">
		<manifest>
			<attribute name="Main-Class" value="org.funa.foobar.AppMain"/>
		</manifest>
	</jar>
  </target>
  <target name="clean">
    <delete dir="${build}"/>
    <mkdir dir="${build}"/>
  </target>
  <target name="rebuild" depends="clean,compile"/>
</project>
上の例では "compile" "dist" "clean" "rebuild" の4つのターゲットを指定し ていて,ターゲットは ant の引数に使います. ちょうど "make clean"ってやる のと同じように, "ant clean" などと実行します. それぞれのターゲットでは 以下のような指定をしています. 他にもいろいろ出来るんだけど,これだけ知っていればとりあえずは使えるかな.

日記の感想はこちらへどーぞ.

Generated with mkdiary.rb
Back to my diary