7.5.5 アプリケーションのアーカイブを作成する
アプリケーションのアーカイブを作成するには、ビルドファイル(build.xml)を編集してEclipseプロジェクトをビルドします。ビルドファイルはプロジェクトの種類に合わせて編集します。ここでは例として、EJBプロジェクト、動的Webプロジェクト、およびエンタープライズアプリケーションプロジェクトのアーカイブを作成します。
前提条件
-
デフォルトのデバッグ環境がセットアップされている
-
ドメイン管理サーバが起動している
-
Eclipseが起動している
-
アプリケーション開発環境用のデータベースサーバが起動している
想定ユーザー
-
アプリケーション開発者
操作手順
-
[プロジェクト・エクスプローラー]ビューでbuild.xmlを追加するプロジェクトを選択して、コンテキストメニューから[新規]-[ファイル]を選択します。
[新規ファイル]ダイアログが表示されます。
-
build.xmlを追加するプロジェクトを選択した状態で、ファイル名にbuild.xmlを入力して、[終了]ボタンをクリックします。
選択したプロジェクトにbuild.xmlが追加されます。
- メモ
-
手順3以降のビルドファイルの例では、ビルドファイルの実行時に、「VM引数」に-DHJAVAEE_HOME=Application Server for Developersのインストールディレクトリーを指定します。
-
EJBプロジェクトのビルドファイルに次の内容を記述します。
#
記述例
記述内容の意味
1
<?xml version="1.0" encoding="UTF-8"?>
XML宣言です。
2
<project name="Bank_EJB" default="create" basedir="./">
ビルドファイルのルートを指定します。
3
<property name="classPath" value="${HJAVAEE_HOME}/javaee/glassfish/lib/javaee.jar"/>
プロパティーに、Application ServerのJava EEライブラリーのパスを指定します。
4
<property name="ejbArchiveName" value="Bank_EJB.jar"/>
プロパティーに、EJBプロジェクトで生成するアーカイブファイル名の指定を追加します。
5
<property name="javacPath" value="${HJAVAEE_HOME}/jdk/bin/javac.exe"/>
プロパティーに、Application Serverのjavacコマンドのパスを指定します。
6
<property name="tempFolder" value="ant"/>
プロパティーに、ビルドで使用する一時ディレクトリー名を指定します。ディレクトリー名は任意の名称を指定します。
7
<target name="create">
ターゲットcreateの開始タグです。
8
<delete file="./${ejbArchiveName}"/>
既存のアーカイブファイルを削除します。
9
<mkdir dir="./${tempFolder}"/>
ビルド用の一時ディレクトリーを作成します。
10
<copy todir="./${tempFolder}">
ビルド用の一時ディレクトリーに、アーカイブに含めるファイルをコピーします。
11
<fileset dir="./ejbModule" excludes="**/*.java"/>
Javaソースをコピー対象外にします。
12
</copy>
10行目のコピータスクの終了タグです。
13
<javac srcdir="./ejbModule" destdir="./${tempFolder}" executable="${javacPath}" classpath="${classPath}"/>
Javaソースをコンパイルします。コンパイルにはApplication Serverのjavacコマンドを使用します。
14
<jar destfile="./${ejbArchiveName}" basedir="./${tempFolder}"/>
ビルド用の一時ディレクトリー以下のフォルダーおよびファイルをアーカイブして、jarファイルを生成します。
15
<delete dir="./${tempFolder}"/>
ビルド用の一時ディレクトリーを削除します。
16
</target>
7行目のターゲットcreateの終了タグです。
17
</project>
ビルドファイルの終了タグです。
-
EJBプロジェクトのビルドファイルを実行します。
EJB-JARファイルが生成されます。
-
動的Webプロジェクトのビルドファイルに次の内容を記述します。
#
記述例
記述内容の意味
1
<?xml version="1.0" encoding="UTF-8"?>
XML宣言です。
2
<project name="Bank_Web" default="create" basedir="./">
ビルドファイルのルートを指定します。
3
<property name="jspcdir" value="${HJAVAEE_HOME}/javaee/glassfish/bin"/>
プロパティーに、Application ServerのJSP事前コンパイル用コマンドのパスを指定します。
4
<property name="ejbJarPath" value="../Bank_EJB/Bank_EJB.jar"/>
プロパティーに、EJBプロジェクトのアーカイブのパスを指定します。
5
<property name="classPath" value="${HJAVAEE_HOME}/javaee/glassfish/lib/javaee.jar;${ejbJarPath}"/>
プロパティーに、Application ServerのJava EEライブラリー、およびEJBプロジェクトのアーカイブのパスを指定します。
6
<property name="javacPath" value="${HJAVAEE_HOME}/jdk/bin/javac.exe"/>
プロパティーに、Application Serverのjavacコマンドのパスを指定します。
7
<property name="tempFolder" value="ant"/>
プロパティーに、ビルドで使用する一時ディレクトリー名を指定します。ディレクトリー名は任意の名称を指定します。
8
<property name="webArchiveName" value="Bank_Web.war"/>
プロパティーに、動的Webプロジェクトで生成するアーカイブファイル名を指定します。
9
<property name="webRoot" value="WebContent"/>
プロパティーに、動的Webプロジェクトのルートを指定します。
10
<target name="compile">
JSP事前コンパイル用のターゲットcompileの開始タグです。
11
<exec executable="${jspcdir}/jspc.bat" newenvironment="true">
Application ServerのJSP事前コンパイル用のコマンドを実行します。
12
<arg line='-classpath ${ejbJarPath}'/>
JSP事前コンパイルでEJBプロジェクトのクラスを参照する場合は、EJBプロジェクトのクラスパスを指定します。
13
<argline='-webapp"./${tempFolder}"'/>
コマンドの引数として、アプリケーションのルートパスを指定します。
14
<argline='-v'/>
コマンドの引数として、JSPコンパイル時の詳細情報出力を指定します。
15
<argline='–compile'/>
コマンドの引数として、クラスファイルの作成を指定します。
16
<argline='–d"./${tempFolder}/WEB-INF/classes"'/>
コマンドの引数として、JSPコンパイル結果を出力するディレクトリーパスを指定します。
17
</exec>
11行目のコマンド実行の終了タグです。
18
</target>
10行目のターゲットcompileの終了タグです。
19
<target name="create">
ターゲットcreateのルートを指定します。
20
<delete file="./${webArchiveName}"/>
既存のアーカイブファイルを削除します。
21
<mkdir dir="./${tempFolder}"/>
ビルド用の一時ディレクトリーを作成します。
22
<copy todir="./${tempFolder}">
アーカイブに含めるファイルを一時ディレクトリーにコピーします。
23
<fileset dir="./${webRoot}" excludes="**/classes/**/*.class"/>
Javaクラスをコピー対象外にします。
24
</copy>
22行目のコピータスクの終了タグです。
25
<mkdir dir="./${tempFolder}/WEB-INF/classes"/>
JSPコンパイル結果を出力するディレクトリーを作成します。
26
<javac srcdir="./src" destdir="./${tempFolder}/WEB-INF/classes" executable="${javacPath}" classpath="${classPath}"/>
Javaソースをコンパイルします。コンパイルにはApplication Serverのjavacコマンドを使用します。
27
<antcall target="compile"/>
JSP事前コンパイル用のターゲットcompileを呼び出します。JSP事前コンパイルをしない場合は記述しません。
28
<war destfile="./${webArchiveName}" basedir="./${tempFolder}" webxml="./${tempFolder}/WEB-INF/web.xml" excludes="WEB-INF/web.xml"/>
一時ディレクトリー以下のディレクトリーおよびファイルをアーカイブして、WARファイルを生成します。
29
<delete dir="./${tempFolder}"/>
一時ディレクトリーを削除します。
30
</target>
19行目のターゲットcreateの終了タグです。
31
</project>
ビルドファイルの終了タグです。
-
動的Webプロジェクトのビルドファイルを実行します。
WARファイルが生成されます。
-
エンタープライズアプリケーションプロジェクトのビルドファイルに次の内容を記述します。
#
記述例
記述内容の意味
1
<?xml version="1.0" encoding="UTF-8"?>
XML宣言です。
2
<project name="Bank" default="create" basedir="./">
ビルドファイルのルートを指定します。
3
<property name="earArchiveName" value="Bank.ear"/>
プロパティーに、エンタープライズアプリケーションプロジェクトで生成するアーカイブファイル名を指定します。
4
<property name="ejbArchiveName" value="Bank_EJB.jar"/>
プロパティーに、EJBプロジェクトで生成するアーカイブファイル名を指定します。
5
<property name="ejbProjectName" value="Bank_EJB"/>
プロパティーに、EJBプロジェクトの名称を指定します。
6
<property name="webArchiveName" value="Bank_Web.war"/>
プロパティーに、動的Webプロジェクトで生成するアーカイブファイル名を指定します。
7
<property name="webProjectName" value="Bank_Web"/>
プロパティーに、動的Webプロジェクトの名称を指定します。
8
<property name="excludes" value=".classpath、.mymetadata、.project、build-user.xml"/>
プロパティーに、EARファイル生成時に除くファイルを指定します。
9
<target name="create">
ターゲットcreateの開始タグです。
10
<ant antfile="../${ejbProjectName}/build.xml" dir="../${ejbProjectName}" inheritall="false"/>
EJBプロジェクトのビルドファイルを実行します。
11
<ant antfile="../${webProjectName}/build.xml" dir="../${webProjectName}" inheritall="false"/>
動的Webプロジェクトのビルドファイルを実行します。
12
<delete file="./${earArchiveName}"/>
既存のアーカイブファイルを削除します。
13
<ear destfile="./${earArchiveName}" basedir="./" appxml="./EarContent/META-INF/application.xml"excludes="${excludes}">
EARファイルを生成します。
14
<fileset file="../${ejbProjectName}/${ejbArchiveName}"/>
EARファイルに含めるEJB-JARファイルを指定します。
15
<fileset file="../${webProjectName}/${webArchiveName}"/>
EARファイルに含めるWARファイルを指定します。
16
</ear>
13行目のearタスクの終了タグです。
17
</target>
9行目のターゲットcreateの終了タグです。
18
</project>
ビルドファイルの終了タグです。
-
エンタープライズアプリケーションプロジェクトのビルドファイルを実行します。
エンタープライズアプリケーションプロジェクトをビルドすると、EJBプロジェクト、動的Webプロジェクト、エンタープライズアプリケーションプロジェクトの順にビルドされて、EJB-JARファイルとWARファイルを含むEARファイルが生成されます。
-
Administration Consoleの[アプリケーションのデプロイ]画面を使用して、作成したアーカイブファイルを実行環境にインポートします。
開発したアプリケーションが実行環境に配布されます。