Ant
ソフトウェア特論
第8回 / 2004-07-02
お知らせ
レポート課題を出しています。
提出は 7/30 (金) まで。
きょうの目標
Ant の基本について理解する。
Ant の概要
Ant とは何か
Javaのプログラムのコンパイルや実行を手
助けしてくれるツール
例えば、コンパイルや実行のときに必要な、
Jarファイルやオプションの指定が楽になる。
「ビルドツール」と呼ばれる。
Unix での make のようなもの
Ant の特徴
Javaでできているので、環境に依存しない。
標準で多くの処理が組み込みに。
javac, java, javadoc, cvs, メール送信など。
処理内容はXMLファイルに記述
build.xml というファイルに記述する
makeの「タブ地獄」よ、さようなら。
Ant を動かすには
環境変数 ANT_HOME の設定が必要
%ANT_HOME&\bin に path を通す
build.xml の記述
build.xml
Ant では、プログラムのコンパイルや実行
の方法を build.xml というファイルに記述
する。
ひとつのproject要素
projectには複数のtarget要素
targetには複数のtask
propertyで名前と値をペアで管理
property
名前と値がペアになっているもの
プロパティの設定
<property name="srcDir" value="src" />
プロパティへのアクセス
${srcDir}
task
処理の最小単位
さまざまなtaskが標準で用意されている
java / javac / jar / javadoc
mkdir / zip
tstamp
など
javac という task
<javac srcdir="${srcDir}"
destdir="${classDir}" />
ソースファイルのコンパイルを行う
srcdir 属性がソースファイルのありか
destdir 属性がクラスファイルの生成先の
ディレクトリ
target (1)
複数のtaskをまとめたもの
例えば、「ディレクトリを作って」「コンパイルを
行う」など
Ant で処理を行う場合の基本単位
target (2)
<target name="compile“ depends="init">
<mkdir dir="${classDir}" />
<javac srcdir="${srcDir}"
destdir="${classDir}" />
</target>
“compile” というターゲット名
targetの依存関係 (1)
このtargetを処理するために必要なtarget
たとえば、Jarファイルを作成する前にコン
パイルが必要。
あるtargetだけを取り出して処理することも
可能。
たとえば、Javadoc の作成など。
targetの依存関係 (2)
compile の前に init の処理
<target name="compile" depends="init">
<mkdir dir="${classDir}" />
<javac srcdir="${srcDir}"
destdir="${classDir}" />
</target>
<target name="jar" depends="compile">
<jar jarfile="csv.jar"
basedir="${classDir}" />
</target>
パターン (1)
ファイルやディレクトリの指定で、Windows
や Unix のようなパターンを使える。
*.java
.java や a.java にマッチ。
a.xml にはマッチしない。
?.java
b.java にマッチ。 .java にはマッチしない。
パターン (2)
csv/**
csv ディレクトリ以下の、すべてのファイル・
ディレクトリにマッチする。
**/*.java
すべてのディレクトリの *.java にマッチする。
もう一つの例
環境変数の取得
環境変数をよみこみ、env という変数に格
納
<property environment="env"/>
環境変数 JWSDP の値(+ /jaxrpc)を、
jaxrpc.home プロパティの値とする。
<property name="jaxrpc.home"
value="${env.JWSDP_HOME}/jaxrpc"/>
クラスパスの設定 (1)
<path id="wspack.classpath">
<pathelement location=
"${jaxrpc.home}/lib/jaxrpc-api.jar"/>
<pathelement location=
"${jaxrpc.home}/lib/jaxrpc-impl.jar"/>
</path>
クラスパスの設定 (2)
<target name="compile" depends="init">
<javac srcdir=".">
<include name="*.java" />
<classpath>
<path refid="wspack.classpath"/>
</classpath>
</javac>
</target>
Ant の実行
Ant の実行 (1)
build.xml があるディレクトリで実行する。
ant
デフォルトの target が実行される。
この場合は all という target
このとき、target の依存関係をたどり、必要な target
から順に実行される。
<project name="csv" default="all" basedir=".">
Ant の実行 (2)
ant compile
compile target が実行される。
© Copyright 2026 ExpyDoc