8.2.2 ビルドファイルの編集・実行

プロジェクトの種類によって,ビルドファイル(build.xml)に記述する内容が異なります。それぞれのプロジェクトの種類に合わせて,ビルドファイルを編集してください。ビルドファイルを作成する順序は次のとおりです。

  1. EJBプロジェクトのビルド
  2. Webプロジェクトのビルド
  3. エンタープライズアプリケーションプロジェクトのビルド

この流れに沿って,各プロジェクトのビルドファイルの編集と実行について説明します。

<この項の構成>
(1) EJBプロジェクトのビルド
(2) Webプロジェクトのビルド
(3) エンタープライズアプリケーションプロジェクトのビルド

(1) EJBプロジェクトのビルド

EJBプロジェクトのビルドファイルに次の内容を記述します。ビルドファイルを実行すると,EJB-JARファイルが生成されます。

表8-1 EJBプロジェクトのビルドファイルの例

行番号記述例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<?xml version="1.0" encoding="UTF-8"?>
<project name="Bank_EJB" default="create" basedir="./">
<property environment="myEnv"/>
<property name="classPath" value="${myEnv.COSMINEXUS_HOME}/CC/client/lib/j2ee-javax.jar"/>
<property name="ejbArchiveName" value="Bank_EJB.jar"/>
<property name="javacPath" value="${myEnv.COSMINEXUS_HOME}/jdk/bin/javac.exe"/>
<property name="tempFolder" value="ant"/>
<target name="create">
<delete file="./${ejbArchiveName}"/>
<mkdir dir="./${tempFolder}"/>
<copy todir="./${tempFolder}">
<fileset dir="./src" excludes="**/*.java"/>
</copy>
<javac srcdir="./src" destdir="./${tempFolder}"        executable="${javacPath}" classpath="${classPath}"/>
<jar destfile="./${ejbArchiveName}" basedir="./${tempFolder}"/>
<delete dir="./${tempFolder}"/>
</target>
</project>

ビルドファイルの内容の意味は,次のとおりです。

表8-2 EJBプロジェクトのビルドファイルの記述内容

行番号記述内容の意味
1XML宣言です。
2ビルドファイルのルートを指定します。
3プロパティに,ビルドファイルからシステム環境変数を参照する設定を追加します。
4プロパティに,CosminexusのJ2EEライブラリのパスを指定します。
5プロパティに,EJBプロジェクトで生成するアーカイブファイル名の指定を追加します。
6プロパティに,Cosminexusのjavacコマンドのパスを指定します。
7プロパティに,ビルドで使用する一時ディレクトリ名を指定します。ディレクトリ名は任意の名称を指定します。
8ターゲット「create」の開始タグです。
9既存のアーカイブファイルを削除します。
10ビルド用の一時ディレクトリを作成します。
11ビルド用の一時ディレクトリに,アーカイブに含めるファイルをコピーします。
12Javaソースをコピー対象外にします。
1311行目のコピータスクの終了タグです。
14Javaソースをコンパイルします。コンパイルにはCosminexusのjavacコマンドを使用します。
15ビルド用の一時ディレクトリ以下のフォルダおよびファイルをアーカイブして,jarファイルを生成します。
16ビルド用の一時ディレクトリを削除します。
178行目のターゲット「create」の終了タグです。
18ビルドファイルの終了タグです。

(2) Webプロジェクトのビルド

Webプロジェクトのビルドファイルに,次の内容を記述します。ビルドファイルを実行すると,WARファイルが生成されます。

なお,WebプロジェクトのビルドファイルはEJBプロジェクトのアーカイブファイルを参照しています。Webプロジェクトをビルドする前に,必ずEJBプロジェクトをビルドしてください。

表8-3 Webプロジェクトのビルドファイルの例

行番号記述例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

<?xml version="1.0" encoding="UTF-8"?>
<project name="Bank_Web" default="create" basedir="./">
<property environment="myEnv"/>
<property name="cjjspcdir" value="${myEnv.COSMINEXUS_HOME}/CC/web/bin"/>
<property name="classPath" value="${myEnv.COSMINEXUS_HOME}/CC/client/lib/j2ee-javax.jar;../Bank_EJB/Bank_EJB.jar"/>
<property name="javacPath" value="${myEnv.COSMINEXUS_HOME}/jdk/bin/javac.exe"/>
<property name="tempFolder" value="ant"/>
<property name="webArchiveName" value="Bank_Web.war"/>
<property name="webProjectPath" value="E:/eclipse/workspace/Bank_Web/"/>
<property name="webRoot" value="WebRoot"/>
<target name="compile">
<exec executable="${cjjspcdir}/cjjspc.bat" newenvironment="true">
<arg line='-source 1.4'/>
<arg line='-pageencoding UTF-8'/>
<arg line='-root "${webProjectPath}/${tempFolder}"'/>
</exec>
</target>
<target name="create">
<delete file="./${webArchiveName}"/>
<mkdir dir="./${tempFolder}"/>
<copy todir="./${tempFolder}">
<fileset dir="./${webRoot}" excludes="**/classes/**/*.class"/>
</copy>
<javac srcdir="./src" destdir="./${tempFolder}/WEB-INF/classes" executable="${javacPath}" classpath="${classPath}"/>
<antcall target="compile"/>
<war destfile="./${webArchiveName}" basedir="./${tempFolder}"        webxml="./${tempFolder}/WEB-INF/web.xml" excludes="WEB-INF/web.xml"/>
<delete dir="./${tempFolder}"/>
</target>
</project>

ビルドファイルの内容の意味は,次のとおりです。

表8-4 Webプロジェクトのビルドファイルの記述内容

行番号記述内容の意味
1XML宣言です。
2ビルドファイルのルートを指定します。
3プロパティに,ビルドファイルからシステム環境変数を参照する指定を追加します。
4プロパティに,CosminexusのJSP事前コンパイル用コマンドのパスを指定します。
5プロパティに,CosminexusのJ2EEライブラリ,およびEJBプロジェクトのアーカイブのパスを指定します。
6プロパティに,Cosminexusのjavacコマンドのパスを指定します。
7プロパティに,ビルドで使用する一時ディレクトリ名を指定します。ディレクトリ名は任意の名称を指定します。
8プロパティに,Webプロジェクトで生成するアーカイブファイル名を指定します。
9プロパティに,Webプロジェクトの絶対パスを指定します。
10プロパティに,Webプロジェクトのルートを指定します。
11JSP事前コンパイル用のターゲット「compile」の開始タグです。
12CosminexusのJSP事前コンパイル用のコマンドを実行します。
13コマンドの引数を指定します。指定したバージョンのJava言語を使用して事前コンパイルします。
14コマンドの引数として,JSPのデフォルトの文字エンコーディングを指定します。
15コマンドの引数として,Webプロジェクトのルートに一時ディレクトリを指定します。
1612行目のコマンド実行の終了タグです。
1711行目のターゲット「compile」の終了タグです。
18ターゲット「create」のルートを指定します。
19既存のアーカイブファイルを削除します。
20ビルド用の一時ディレクトリを作成します。
21アーカイブに含めるファイルを一時ディレクトリにコピーします。
22Javaクラスをコピー対象外にします。
2321行目のコピータスクの終了タグです。
24Javaソースをコンパイルします。コンパイルにはCosminexusのjavacコマンドを使用します。
25JSP事前コンパイル用のターゲット「compile」を呼び出します。JSP事前コンパイルをしない場合は記述しません。
26一時ディレクトリ以下のディレクトリおよびファイルをアーカイブして,WARファイルを生成します。
27一時ディレクトリを削除します。
2818行目のターゲット「create」の終了タグです。
29ビルドファイルの終了タグです。

(3) エンタープライズアプリケーションプロジェクトのビルド

エンタープライズアプリケーションプロジェクトのビルドファイルに,次の内容を記述します。ビルドファイルを実行すると,EARファイルが生成されます。

なお,エンタープライズアプリケーションプロジェクトをビルドすると,EJBプロジェクト,Webプロジェクト,エンタープライズアプリケーションプロジェクトの順にビルドされて,EJB-JARファイルとWARファイルを含むEARファイルが生成されます。

エンタープライズアプリケーションプロジェクトをビルドする前に,必ずEJBプロジェクトおよびWebプロジェクトのビルドファイルを作成してください。

表8-5 エンタープライズアプリケーションプロジェクトのビルドファイルの例

行番号記述例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<?xml version="1.0" encoding="UTF-8"?>
<project name="Bank" default="create" basedir="./">
<property name="earArchiveName" value="bank.ear"/>
<property name="ejbArchiveName" value="Bank_EJB.jar"/>
<property name="ejbProjectName" value="Bank_EJB"/>
<property name="webArchiveName" value="Bank_Web.war"/>
<property name="webProjectName" value="Bank_Web"/>
<property name="excludes" value=".classpath,.mymetadata,.project,build-user.xml"/>
<target name="create">
<ant antfile="../${ejbProjectName}/build.xml"        dir="../${ejbProjectName}" inheritall="false"/>
<ant antfile="../${webProjectName}/build.xml"        dir="../${webProjectName}" inheritall="false"/>
<delete file="./${earArchiveName}"/>
<ear destfile="./${earArchiveName}" basedir="./"        appxml="./META-INF/application.xml" excludes="${excludes}">
<fileset file="../${ejbProjectName}/${ejbArchiveName}"/>
<fileset file="../${webProjectName}/${webArchiveName}"/>
</ear>
</target>
</project>

ビルドファイルの内容の意味は,次のとおりです。

表8-6 エンタープライズアプリケーションプロジェクトのビルドファイルの記述内容

行番号記述例
1XML宣言です。
2ビルドファイルのルートを指定します。
3プロパティに,エンタープライズアプリケーションプロジェクトで生成するアーカイブファイル名を指定します。
4プロパティに,EJBプロジェクトで生成するアーカイブファイル名を指定します。
5プロパティに,EJBプロジェクトの名称を指定します。
6プロパティに,Webプロジェクトで生成するアーカイブファイル名を指定します。
7プロパティに,Webプロジェクトの名称を指定します。
8プロパティに,EARファイル生成時に除くファイルを指定します。
9ターゲット「create」の開始タグです。
10EJBプロジェクトのビルドファイルを実行します。
11Webプロジェクトのビルドファイルを実行します。
12既存のアーカイブファイルを削除します。
13EARファイルを生成します。
14EARファイルに含めるEJB-JARファイルを指定します。
15EARファイルに含めるWARファイルを指定します。
1613行目のearタスクの終了タグです。
179行目のターゲット「create」の終了タグです。
18ビルドファイルの終了タグです。