3.2. デプロイメントへの明示的なモジュール依存関係の追加
前提条件
- モジュールの依存関係を追加する作業用ソフトウェアプロジェクトがすでにある必要があります。
- 依存関係として追加するモジュールの名前を知っている必要があります。JBoss EAP 6 に含まれる静的モジュールの一覧は、「含まれるモジュール」を参照してください。モジュールが他のデプロイメントである場合は、「動的モジュールの名前付け」を参照してモジュール名を決定してください。
- デプロイメントの
MANIFEST.MF
ファイルにエントリーを追加します。 jboss-deployment-structure.xml
デプロイメント記述子にエントリーを追加します。
手順3.1 MANIFEST.MF への依存関係設定の追加
MANIFEST.MF
ファイルの必要な依存関係エントリーを作成するよう Maven プロジェクトを設定できます。「Maven を使用した MANIFEST.MF エントリーの生成」を参照してください。
MANIFEST.MF
ファイルを追加しますプロジェクトにMANIFEST.MF
ファイルがない場合、MANIFEST.MF
というファイルを作成します。Web アプリケーション (WAR) では、このファイルをMETA-INF
ディレクトリーに追加します。EJB アーカイブ (JAR) では、このファイルをMETA-INF
ディレクトリーに追加します。依存関係エントリーを追加
依存関係モジュール名をコンマで区切り、依存関係エントリーをMANIFEST.MF
ファイルへ追加します。Dependencies: org.javassist, org.apache.velocity
オプション: 依存関係をオプションにします
依存関係は、依存関係エントリーのモジュール名にoptional
を追加することでオプションにすることができます。Dependencies: org.javassist optional, org.apache.velocity
オプション: 依存関係をエクスポートします
依存関係エントリーのモジュール名にexport
を付けると、依存関係をエクスポートすることができます。Dependencies: org.javassist, org.apache.velocity export
オプション: アノテーションを使用した依存関係
この annotations フラグは、EJB インターセプターを宣言するときなど、アノテーションのスキャン中に処理する必要があるアノテーションがモジュールの依存関係に含まれる場合に必要になります。これを行わないと、モジュールで宣言された EJB インターセプターをデプロイメントで使用できなくなります。アノテーションのスキャンが関係するその他の状況でも、この設定が必要になる場合があります。このフラグを使用するには、モジュールに Jandex インデックスが含まれている必要があります。Jandex インデックスを作成および使用するための手順は、このトピックの最後に含まれています。
手順3.2 依存関係設定を jboss-deployment-structure.xml に追加します
jboss-deployment-structure.xml
の追加アプリケーションにjboss-deployment-structure.xml
ファイルがない場合は、jboss-deployment-structure.xml
という名前の新しいファイルを作成し、プロジェクトに追加します。このファイルは、ルート要素が<jboss-deployment-structure>
である XML ファイルです。<jboss-deployment-structure> </jboss-deployment-structure>
Web アプリケーション (WAR) では、このファイルをWEB-INF
ディレクトリーに追加します。EJB アーカイブ (JAR) では、このファイルをMETA-INF
ディレクトリーに追加します。依存関係セクションを追加
ドキュメントルート内に<deployment>
要素を作成し、その中に<dependencies>
要素を作成します。モジュール要素を追加する
dependencies ノード内に各モジュールの依存関係に対するモジュール要素を追加します。name
属性にモジュール名を設定します。<module name="org.javassist" />
オプション: 依存関係をオプションにします
依存関係をオプションにするには、optional
属性をモジュールエントリーに追加し、値をtrue
にします。この属性のデフォルト値はfalse
です。<module name="org.javassist" optional="true" />
オプション: 依存関係をエクスポートします
依存関係をエクスポートするには、export
属性をモジュールエントリーに追加し、値をtrue
にします。この属性のデフォルト値はfalse
です。<module name="org.javassist" export="true" />
例3.3 2 つの依存関係を持つ jboss-deployment-structure.xml
<jboss-deployment-structure> <deployment> <dependencies> <module name="org.javassist" /> <module name="org.apache.velocity" export="true" /> </dependencies> </deployment> </jboss-deployment-structure>
Jandex インデックスの作成
annotations
フラグは Jandex インデックスが含まれるモジュールを必要とします。モジュールに追加する新しいインデックス JAR を作成できます。Jandex JAR を使用してインデックスを構築し、新しい JAR ファイルに挿入します。
手順3.3
インデックスの作成
java -jar EAP_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar $JAR_FILE
一時作業領域の作成
mkdir /tmp/META-INF
インデックスファイルを作業ディレクトリーに移動します。
mv $JAR_FILE.ifx /tmp/META-INF/jandex.idx
- オプション 1: インデックスを新しい JAR ファイルに含めます。
jar cf index.jar -C /tmp META-INF/jandex.idx
JAR をモジュールディレクトリーに置き、module.xml
を編集してリソースルートへ追加します。 - オプション 2: インデックスを既存の JAR に追加します。
java -jar EAP_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar -m $JAR_FILE
モジュールのインポートに注釈インデックスを利用するように指示します
アノテーションインデックスを使用するようモジュールインポートに指示し、アノテーションのスキャンでアノテーションを見つけられるようにします。状況に応じて、以下のいずれかの方法を選択してください。- MANIFEST.MF を使用してモジュールの依存関係を追加する場合は、
annotations
をモジュール名の後に追加します。例を以下に示します。Dependencies: test.module, other.module
上記を以下のように変更します。Dependencies: test.module annotations, other.module
jboss-deployment-structure.xml
を使用してモジュールの依存関係を追加する場合は、モジュールの依存関係にannotations="true"
を追加します。