Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > オープンソース > Ant −2.基本操作
更新日:2006/6/3
Ant−2.基本操作
ここでは、Ant基本操作について解説します。build.xmlの作成方法、antコマンドについて解説します。

実行環境
・Windows2000 Professional
・J2SDK 1.4.1_05
・Ant 1.5.4
build.xml
build.xmlはAntを実行する際に参照されるAntの振る舞いを記載した設定ファイルです。Antはこの設定ファイルに従い、javacの実行、jarファイルの作成などを行います。ここでは、build.xmlの作成方法について解説します。
build.xmlの構成
Ant_build.xmlの構成
Antはプロジェクトと言う単位でbuild.xmlを管理します。プロパティにより、build.xmlで使用する変数を宣言することができます。ターゲットは一連の処理の一まとまりを言い、タスクはターゲット内の個々の処理を言います。ターゲット同士で依存関係を結ぶこともできます。依存したターゲットは依存されたターゲットが実行されるまで、実行されません。
プロジェクト
プロジェクトはbuild.xmlに1つだけ存在し、build.xmlを管理するものです。
属性
内容
必須
name
プロジェクト名を指定します。
No
default
antコマンドの引数にターゲットが指定されなかった時に実行されるターゲット名を指定します。
Yes
basedir
ビルド処理のベースとなるディレクトリを指定します。指定しない場合は、build.xmlが設置されているディレクトリになります。
No
【例1】exampleプロジェクトを定義した例です。
<project name="example" default="compile" basedir=".">
  --------------------
  <target name="compile">
    --------------------
    --------------------
  </target>
</project>
プロパティ
プロパティはタスク内で使用できる変数を宣言します。変数値は${name}で参照できます。JavaAPIのシステムプロパティをあらかじめ設定された変数として参照することもできます。詳細はJa-JakartaプロジェクトのAnt日本語マニュアルの「Antの使い方」→「組込みプロパティ」を参照してください。
属性
内容
必須
name
プロジェクト名を指定します。
Yes
value
プロパティ名に対する値を指定します。
Yes
【例2】プロパティ名dirAでディレクトリパスを指定した例です。
<property name="dirA" value="D:\Program Files\java" />
ターゲット
ターゲットはビルド処理で行われる一連の一まとまりの処理を管理します。
属性
内容
必須
name
ターゲット名を指定します。
Yes
depends
依存するターゲットのnameを指定します。指定したターゲットが実行されるまで、このターゲットが実行されません。,(カンマ)で複数指定することができます。
No
if
設定されていなければいけないプロパティ名を指定します。設定されていない場合はターゲットは実行されません。
No
unless
設定してはいけないプロパティ名を指定します。設定されている場合はターゲットは実行されません。
No
description
ターゲットの概要を記載します。
No
【例3】ターゲットcompileでソースファイルをコンパイルし、ターゲットjarでコンパイルされたclassファイルをjarファイルに圧縮する例です。ターゲットjarはターゲットcompileに依存しており、ターゲットcompileが実行されないと実行されることはありません。
<target name="compile">
  <!-- コンパイル処理 -->
</target>

<target name="jar" depends="compile">
  <!-- jar処理 -->
</target>
タスク
タスクはターゲット内の個々の処理を表します。Antでは、非常に多くのタスクが定義されています。ここでは、そのうち主要なものを紹介します。詳細はJa-JakartaプロジェクトのAnt日本語マニュアルの「Antのタスク」を参照してください。
javacタスク
名前のとおりjavacコマンドと同様の処理を行います。
属性
内容
必須
srcdir
javaソースファイルがあるディレクトリを指定します。
Yes
destdir
コンパイルしたclassファイルを出力するディレクトリを指定します。
No
classpath
classpathを指定します。
No
includes
コンパイルに含めたいファイルを指定します。
No
excludes
コンパイルから除きたいファイルを指定します。
No
jarタスク
名前のとおり指定したファイルをjarファイルに圧縮する処理を行います。
属性
内容
必須
destfile
圧縮されるjarファイル名を指定します。
Yes
basedir
jarファイルに圧縮したいファイルのルートディレクトリを指定します。
No
mkdirタスク
ディレクトリを作成する処理を行います。
属性
内容
必須
dir
作成するディレクトリ名を指定します。
Yes
copyタスク
指定したファイルをコピーする処理を行います。
属性
内容
必須
dir
コピーしたいファイル名を指定します。
Yes
tofile
コピー先のファイル名を指定します。
Yes
(いずれかを指定)
todir
コピー先のディレクトリ名を指定します。
【例4】mkdirタスクを使用した例、javacタスクを使用した例を記載します。
<target name="compile">
  <!-- ディレクトリの作成 -->
  <mkdir dir="D:\classes"/>
  <!-- ソースファイルのコンパイル  -->
  <javac srcdir="D:\sources"
         destdir="D:\classes"
         includes="HelloWorld.java" />

</target>
antコマンド
Antで使用するいくつかの代表的なコマンド例を紹介します。
ant
  ビルド処理を行います。設定ファイルはカレントディレクトリにあるbuild.xmlを使用します。ターゲットはprojectタグのdefault属性で指定されたターゲットを実行します。
ant ターゲット名
  ターゲット名を指定してビルド処理を行います。
ant -buildfile 設定ファイル
  設定ファイル名がbuild.xmlでない場合、カレントディレクトリにbuild.xmlがない場合に、-buildfileオプションで設定ファイルを指定します。
ant -version
  現在使用しているAntのバージョンを表示します。
ant -help
  antコマンドで利用できるオプションを表示します。
使用例
Antの使用例を紹介します。C:\Javaディレクトリで作業をしており、ビルド処理後、コンパイルされたclassファイルをC:\Classesディレクトリへ配置する例です。
Ant_ビルド
build.xmlは以下のようになります。
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="example" default="compile" basedir="C:\">

  <!-- propertyタグで変数source、compileを設定 -->
  <property name="source" value="./Java"/>
  <property name="compile" value="./Classes"/>

  <!-- ディレクトリClassesの作成 -->
  <target name="directory">
    <mkdir dir="${compile}"/>
  </target>

  <!-- ディレクトリJava内のソースファイルをコンパイル -->
  <!-- ターゲットdirectoryに依存しているため、
       ターゲットdirectoryを先に実行 -->
  <target name="compile" depends="directory">
    <javac srcdir="${source}"
           destdir="${compile}"
           excludes="build.xml" />
  </target>

</project>
antを実行します。

C:\Java>ant   ←antコマンドの実行
Buildfile: build.xml

directory:
  [mkdir] Created dir: C:\Classes   ←mkdirタスクの実行

compile:
  [javac] Compiling 2 source files to C:\Classes   ←javacタスクの実行

BUILD SUCCESSFUL   ←処理の成功
Total time: 15 seconds
C:\Java>




このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道