UNIXな生活
更新:2003/12/28  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
apache antでbuild(javaアプリケーション偏)

ANTは、http://ant.apache.org/から入手し展開するだけです。
私は、/usr/local/jakarta/以下に展開しています。
展開後、ANT_HOMEとPATHの設定をしてください。
例)
bash
export ANT_HOME=/usr/local/jakarta/apache-ant-1.5.4
export PATH=$PATH:$ANT_HOME/bin

tcsh
setenv ANT_HOME /usr/local/jakarta/apache-ant-1.5.4
setenv PATH $PATH:$ANT_HOME/bin

1>JAVAアプリケーションのbuild.xml作成
実際に小規模なアプリケーションをANTでBuildするためのbuild.xmlを例に説明します。
アプリケーションは、以下の表の通りです。
build.xmlでこのアプリケーションのコンパイル、javadocの作成、jar化を一通り行います。

sample
   |
   |---src
   |    |----pk1(Package)
   |    |       |-----Sample1.java
   |    |
   |    |----pk2(Package)
   |    |       |-----Sample2.java
   |    |       |-----Sample3.java
   |    |
   |    |----Sample.java
   |    |
   |    |----build.xml
   |
   |
   |---docs
   |
   |---jarファイル
   |
   |---class

build.xmlのサンプル
<?xml version="1.0" encoding="EUC-JP"?>      <-----------------1
<project name="sample" default="all" basedir="." > <-------------2

       <description>  <-----------------------------------------3
          This ANT Sample Project
       </description>
                                                                               
        <!-- Set Property -->  <---------------------------------4
        <property name="main" value="." />
        <property name="classdir" value="../class" />
        <property name="javadoc" value="../docs" />
        <property name="jarfile" value="../Sample.jar" />
                                                                               
        <!-- Set DefaultTarget -->  <--------------------------5
        <target name="all" depends="compile,javadoc,jar" />
                                                                               
        <!-- Compile Target -->  <-----------------------------6
        <target name="compile">
            <mkdir dir="${classdir}" />
            <javac srcdir="${main}" destdir="${classdir}"
             encoding="EUC-JP" debug="no" />
       </target>
                                                                               
       <!-- javadoc Target -->   <-----------------------------7
       <target name="javadoc">
            <mkdir dir="${javadoc}" />
            <javadoc windowtitle="SampleApplication" sourcepath="."
              packagenames="pk1,pk2" destdir="${javadoc}" />
       </target>
                                                                               
       <!-- jar Target -->   <---------------------------------8
       <target name="jar">
            <jar basedir="${classdir}" jarfile="${jarfile}" />
       </target>
                                                                               
       <!-- clean Target -->  <--------------------------------9
       <target name="clean">
            <delete dir="${classdir}" />
            <delete dir="${javadoc}" />
            <delete file="${jarfile}" />
      </target>
</project>

ANTは、build.xmlフィルを作成し、それを元にビルドしていきます。
build.xmlは、[project]、[target]、[task]に大別できます。
[project]---buildファイルのproject定義や変数の定義をします。
[target]----buildの単位の定義。
[task]------buildの単位内に実際の動作を記述します。


1.XMLの宣言部
version=xmlのバージョン(必項)
encoding=ファイルの文字コードを指定(無指定はUTF-8、EUC-JP,Shift_JISも可)

2.プロジェクトの宣言部
<project>タグ
name=プロジェクト名
default=デフォルトのbuild範囲をtarget名で指定
basedir=build.xml内でPATH指定する場合の、ベースディレクトリを指定

3.プロジェクトの説明
プロジェクトの概要説明を記述します。

4.変数の宣言部
<property>タグ
name=変数名
value=変数の値
*ここで、classファイル、javadocファイル、jarファイルの作成場所を設定

5.Buildターゲットの指定
name="all"で、compile、javadocの生成、jarのそれぞれのtargetを実行するように設定してあります。
projectタグのdefultでは、このtargetを指定していますので、%antとすると、ここで指定してあるtargetを実行します。
*allは、projectタグのdefultで指定するために作成。compile,javadoc,jarのtargetを実行する。

6.Compile用target
javaファイルからclassファイルへのコンパイルを行うtargetです。

7.javadoc用target
javaファイルから、javadocを生成するtargetです。

8.jar用target
Compileタグで作成したclassファイルをjar化するtargetです。

9.clean用target
作成したファイルなどを削除するtargetです。

今回は非常にシンプルなbuild.xmlの例ですが、build.xmlでは、target name=initで初期化処理を指定したり、runでアプリケーションの実行を行うことも可能だったり、copyで指定ファイルをコピーしたりなどいろ いろな動作をさせることが可能です。
各Optionもまだ多くのものがありますので、調べてみてください。



Producted by Tomoya Sakurai