株式会社エスロジカル
株式会社エスロジカル
セキュリティ、Web開発、Unix開発、Go言語

■ Java:Ant

技術ドキュメント目次 -> Java -> Ant

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。


サイフにやさしいSSL証明書
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。


◆ はじめに

ant は Apache の Jakartaプロジェクトから提供されている、
Java向けの 強力なbuildツールです。

簡単に言ってしまえば、Java向けの makeコマンドのようなもので、
プログラムを更新後、antコマンドを実行することで、
各配布用のファイルを作成することができます。

ant の設定は、build.xml というXMLファイルを使用する決まりになっています。

build.xml の中では、いろいろな制御を行うことが可能で、
たとえば、
jarファイルを作成するのはもちろんのこと、tarのファイルを作成したり、
外部コマンドを実行するように指定るすることも可能です。

(別にそのようにしなくてもいいのですが)慣例的に、
$ ant
と引数無しに ant を実行すると、パッケージの作成を行い、
$ ant clean
と clean という引数をつけて ant を実行すると、作成した各ファイルを削除します。
(引数のイメージが make コマンドに似ています。)

ここでは、
ant のインストール方法と、
ant を使用するユーザーの環境設定についてと、
ant の設定ファイルである build.xml のサンプルについて解説します。

◆ インストール

ダウンロードして、解答・コピーするだけなので簡単です。
(v1.4.1 の場合)
# cd /usr/local/src
# wget http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/jakarta-ant-1.4.1-optional.jar
# wget http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/jakarta-ant-1.4.1-bin.tar.gz
# tar zxvf jakarta-ant-1.4.1-bin.tar.gz
# mv jakarta-ant-1.4.1 /usr/local/
# cp -p ./jakarta-ant-1.4.1-optional.jar /usr/local/jakarta-ant-1.4.1/lib/


◆ セットアップ&動作確認

ant を実行するユーザーのshell で
次の2つの環境変数をセットすると antが使用できるようになります。

(bashの場合)
export ANT_HOME=/usr/local/jakarta-ant-1.4.1
export PATH=$ANT_HOME/bin:$PATH


ant を実行してみて、
次のように表示されれば、ant が使える状態になっています。
(ant を実行することができたが、build.xmlという設定ファイルが
 カレントディレクトリに存在しないので、処理を行うことができません、
 といった意味のメッセージです。)

$ ant
Buildfile: build.xml does not exist!
Build failed
$


◆ build.xml

ant が使用する設定ファイルである build.xml について、
下のサンプルをもとに簡単な解説をします。

あるプロジェクトにおいて、
作業ディレクトリの ./src というサブディレクトリのなかに
ソースファイルを設置して作業しているとします。

また、各種設定ファイルを src/conf/* として設置していて、
各種実行形式のファイル(例えば、javaをキックしてアプリケーション
を起動するためのshellスクリプトなど)を src/bin/* として設置
していると思います。

つまり、例えば、
次のようなパッケージ・ディレクトリの構成になっているイメージです。

src/com/testProject/engine/*.java
src/com/testProject/data/*.java
src/com/testProject/util/*.java
src/bin/*.sh
src/conf/*.conf


そこで、
以下のような build.xml というファイルを、作業ディレクトリ内に
srcディレクトリと並列の階層に作成します。

その後、
build.xml がカレントディレクトリにある状態で、
ant と入力すると、次のような作業が自動的に行われます。
作業の流れと build.xml の書式を比べてみていただけると、
どのようなことが行われているかイメージしやすいかと思います。

1、
各ソースファイルがコンパイルされ、build/* として、
各classファイルが作成される。

2、
dist ディレクトリと dist/lib ディレクトリを作成する。

3、
コンパイルによって作成された各classファイルをもとに
dist/lib/MyProject.jar を作成する。

4、
dist/bin ディレクトリを作成し、src/bin/* をコピーする

5、
dist/conf ディレクトリを作成し、src/conf/* をコピーする

なお、
$ ant clean
と入力すると、bin ディレクトリと dest ディレクトリが削除されます。

<project name="MyProject" default="dist" basedir=".">

  <property name="src" value="src"/>
  <property name="lib" value="lib"/>
  <property name="build" value="build"/>
  <property name="dist"  value="dist"/>

  <target name="compile">
    <mkdir dir="${build}"/>
    <javac srcdir="${src}" destdir="${build}" debug="yes" />
  </target>

  <target name="dist" depends="compile">
    <mkdir dir="${dist}/lib"/>
    <jar jarfile="${dist}/lib/MyProject.jar" basedir="${build}"/>

    <mkdir dir="${dist}/bin"/>
    <copy todir="${dist}/bin">
      <fileset dir="${src}/bin" />
    </copy>

    <mkdir dir="${dist}/conf"/>
    <copy todir="${dist}/conf">
      <fileset dir="${src}/conf" />
    </copy>

  </target>

  <target name="clean">
    <delete dir="${build}" />
    <delete dir="${dist}" />
  </target>

</project>




■ Java についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. このドキュメントへの評価をご選択ください。
         

2. ご感想をお書きください。