Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。

基本操作

ここでは、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>

2基本操作