前 | トップ | 次 |
ディレクトリ CVS BUILD.XML スクリプト |
このマニュアルで特に薦めたいことは、(この章で述べている)ソースコードのディレクトリ階層 と (前の章で述べられている) 配備するアプリケーションのディレクトリ階層を分割することです。 このように分割すると、以下の利点があります。
ご存じのように、ant
開発ツールは簡単にこのようなディ
レクトリ階層の作成と処理を行います。
アプリケーションのソースコードを含むディレクトリとファイルの階
層については、まったく好きなようにしても構いません。しかし、
以下に述べる構造は非常に一般に適用できます。また、以下で議論
している、build.xml
の例は、この構造を前提にしています。
WEB-INF
ディレクトリにコピーされる
アプリケーションに関連した特殊なファイルを含むディレクトリWEB-INF/lib
配備ディレクトリにコピー
されるJAR ファイルを含むディレクトリ以前にも述べたように、アプリケーションを構築するすべてのソースコー ドを、Concurrent Version System (CVS) の様なソースコード管理システム下に置くことを強く薦めます。 そうする場合には、ソース階層にあるすべてのディレクト リとファイルは登録、保存されます。 -- しかし生成されたファイ ルについては、どれも登録、保存されません。バイナリファイル (画像や JAR ライブラリなど) を登録する場合には、使用しているソースコー ド管理システムにそれを認識させることを忘れないでください。
ソースコード管理環境の詳細な解説についてはこのマニュアルの範疇 ではありません。しかしながら、CVS のコマンドラインクライアントを 使っているならば、下のステップに従えば良いでしょう。
cvs update -d
を実行します。cvs add {サブディレクトリ名}
の様なコマンドで
登録します。cvs add {ファイル名}
の様なコマン
ドで登録します。cvs remove {ファイル名}
の様なコマンドで登録を取り消
します。cvs
commit
を実行します。この時に、今変更した内容についての短い記述
を求められると思いますが、それは変更したすべてのファイルと一緒に
保存されます。
CVS や他のソースコード管理システムは、たくさんの追加の機能 (特定 のリリースのファイルに対するタグ付けや、後からマージすることのできる複 数の開発ブランチのサポートなど) を持っています。より詳しい情報につい てははじめに内のリンクとリファ レンスを見てください。
私たちは Java ソースコードファイルの管理と配備階層の構築に
ant
ツールを使用するでしょう。Ant は通常は
build.xml
と呼ばれるビルドファイルの管理下で実行し
ます。このファイルはステップが必要とする手続きを定義しています。
Makefile の様に、build.xml
は任意の開発動作(関連し
たJavadoc ドキュメントの生成、プロジェクトを白紙の状態からビルド
するための生成ファイルの削除、またはアプリケーションを配布するた
めの Webアプリケーションアーカイブの作成など)に対応す
るいくつかの "ターゲット" を定義することができます。
すぐ使用できるように、基本的な build.xmlファイルが用意されています。あなたは、これをアプリケー ション用にプロジェクトソースディレクトリの中でカスタマイズしてイ ンストールすることができます。このファイルは実行可能な様々なター ゲットを記述したコメントも含んでいます。簡単に言えば、以下のター ゲットが一般的に提供されています。
depends
属性の効力により間接的に実行されます。
<javac>
タスク実行の一部としてプロパティファイルや、他のリソースファイルをコピーしていました。現在はそれを明示的に実行する必要があります。
build.xml
ファイルは、アプリケーションの中に
API ドキュメントが含まれるものとして書かれています。よって、生
成されたドキュメントは配備ディレクトリのサブディレクトリに置か
れます。
build all
を実行してみるべきです。そ
うすれば、確実に望まないファイルを配布物が含めないようにできます。
build.xml
ファイルでは、WAR ファイルは配備ディレ
クトリ内のもっとも最近のビルドに基づいて生成します。
以下の章では、Ant を使いプロジェクトをコンパイルするための
build.xml
に基づくスクリプトについて述べています。
私たちが利用する基本的なスクリプトを、一般的に buildスクリプ
トと呼びます。これは上で述べた build.xml
を読み込
んで処理する Ant を実行します。build スクリプトを実行する毎に、実
行してほしい "ターゲット" を指定します。コマンドライン MAKE ツー
ル (これは makefile を処理します) のユーザならこのアプローチは容易
に理解できるでしょう。
UNIXベースのシステムでは、下記のスクリプトを
ファイルパーミッションを実行可能にして、以下のようにカスタマイズしてから、
プロジェクトソースディレクトリ内に build.sh
として保存しなければいけません。
#!/bin/sh # build -- "Hello, World"アプリケーションのbuildスクリプト # $Id: source.html,v 1.2.4.3 2001/03/08 00:56:41 marcsaeg Exp $ # 必要とするクラスパスの特定 CP=$TOMCAT_HOME/lib/ant.jar:$TOMCAT_HOME/lib/servlet.jar CP=$CP:$TOMCAT_HOME/lib/jaxp.jar:$TOMCAT_HOME/lib/parser.jar CP=$CP:$JAVA_HOME/lib/tools.jar # 要求されたターゲットを実行するための ANT の実行 java -classpath $CP:$CLASSPATH org.apache.tools.ant.Main \ -Dtomcat.home=$TOMCAT_HOME "$@"
Windowsベースのシステムでは、下記のスクリプトをプロジェクトのソー
スディレクトリ内に build
として保存してから、
以下のようにカスタマイズしなければいけません。
@echo off rem build.bat -- "Hello, World"アプリケーションのbuildスクリプト rem $Id: source.html,v 1.2.4.3 2001/03/08 00:56:41 marcsaeg Exp $ set _CP=%CP% rem 必要とするクラスパスの特定 set CP=%TOMCAT_HOME%\lib\ant.jar;%TOMCAT_HOME%\lib\servlet.jar set CP=%CP%;%TOMCAT_HOME%\lib\jaxp.jar;%TOMCAT_HOME%\lib\parser.jar set CP=%CP%;%JAVA_HOME%\lib\tools.jar rem 要求されたターゲットを実行するための ANT の実行 java -classpath %CP%;%CLASSPATH% org.apache.tools.ant.Main -Dtomcat.home=%TOMCAT_HOME% %1 %2 %3 %4 %5 %6 %7 %8 %9 set CP=%_CP% set _CP=
検討しなければならないビルドスクリプトのカスタマイズ内容は、以下の通りです。
build.xml
ファイル内で定義されているプロパティ
のデフォルト値を上書きします。たとえば、配布のホームディレク
ト
リ (dist.home
プロパティ)を変更するためには、"java"
という単語の後ろに以下の様なコマンドラインオプションをつければ
良いでしょう。
-Ddist.home=xxxxx
[訳注: これは河内崇が翻訳しました。 日本語訳に対するコメントは、jajakarta-report@nekoyanagi.com宛に送って下さい。]