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.idxJAR をモジュールディレクトリーに置き、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"を追加します。