検索

3.2. デプロイメントへの明示的なモジュール依存関係の追加

download PDF
このタスクは、アプリケーションに明示的な依存関係を追加する方法を示しています。明示的なモジュール依存関係をアプリケーションに追加すると、これらのモジュールのクラスをデプロイメント時にアプリケーションのクラスパスに追加することができます。
一部の依存関係は、JBoss EAP 6 によってデプロイメントに自動的に追加されます。詳細は、「暗黙的なモジュール依存関係」 を参照してください。

前提条件

  1. モジュールの依存関係を追加する作業用ソフトウェアプロジェクトがすでにある必要があります。
  2. 依存関係として追加するモジュールの名前を知っている必要があります。JBoss EAP 6 に含まれる静的モジュールの一覧は、「含まれるモジュール」を参照してください。モジュールが他のデプロイメントである場合は、「動的モジュールの名前付け」を参照してモジュール名を決定してください。
依存関係は、次の 2 つの異なる方法を使用して設定できます。
  1. デプロイメントの MANIFEST.MF ファイルにエントリーを追加します。
  2. jboss-deployment-structure.xml デプロイメント記述子にエントリーを追加します。

手順3.1 MANIFEST.MF への依存関係設定の追加

MANIFEST.MF ファイルの必要な依存関係エントリーを作成するよう Maven プロジェクトを設定できます。「Maven を使用した MANIFEST.MF エントリーの生成」を参照してください。
  1. MANIFEST.MF ファイルを追加します

    プロジェクトに MANIFEST.MF ファイルがない場合、MANIFEST.MF というファイルを作成します。Web アプリケーション (WAR) では、このファイルを META-INF ディレクトリーに追加します。EJB アーカイブ (JAR) では、このファイルを META-INF ディレクトリーに追加します。
  2. 依存関係エントリーを追加

    依存関係モジュール名をコンマで区切り、依存関係エントリーを MANIFEST.MF ファイルへ追加します。
    Dependencies: org.javassist, org.apache.velocity
  3. オプション: 依存関係をオプションにします

    依存関係は、依存関係エントリーのモジュール名にoptionalを追加することでオプションにすることができます。
    Dependencies: org.javassist optional, org.apache.velocity
  4. オプション: 依存関係をエクスポートします

    依存関係エントリーのモジュール名に export を付けると、依存関係をエクスポートすることができます。
    Dependencies: org.javassist, org.apache.velocity export
  5. オプション: アノテーションを使用した依存関係

    この annotations フラグは、EJB インターセプターを宣言するときなど、アノテーションのスキャン中に処理する必要があるアノテーションがモジュールの依存関係に含まれる場合に必要になります。これを行わないと、モジュールで宣言された EJB インターセプターをデプロイメントで使用できなくなります。アノテーションのスキャンが関係するその他の状況でも、この設定が必要になる場合があります。
    このフラグを使用するには、モジュールに Jandex インデックスが含まれている必要があります。Jandex インデックスを作成および使用するための手順は、このトピックの最後に含まれています。

手順3.2 依存関係設定を jboss-deployment-structure.xml に追加します

  1. 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 ディレクトリーに追加します。
  2. 依存関係セクションを追加

    ドキュメントルート内に<deployment>要素を作成し、その中に<dependencies>要素を作成します。
  3. モジュール要素を追加する

    dependencies ノード内に各モジュールの依存関係に対するモジュール要素を追加します。name属性にモジュール名を設定します。
    <module name="org.javassist" />
  4. オプション: 依存関係をオプションにします

    依存関係をオプションにするには、optional 属性をモジュールエントリーに追加し、値を true にします。この属性のデフォルト値は false です。
    <module name="org.javassist" optional="true" />
  5. オプション: 依存関係をエクスポートします

    依存関係をエクスポートするには、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>
JBoss EAP 6 では、デプロイ時に、指定されたモジュールからアプリケーションのクラスパスにクラスが追加されます。

Jandex インデックスの作成

annotations フラグは Jandex インデックスが含まれるモジュールを必要とします。モジュールに追加する新しいインデックス JAR を作成できます。Jandex JAR を使用してインデックスを構築し、新しい JAR ファイルに挿入します。

手順3.3

  1. インデックスの作成

    java -jar EAP_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar $JAR_FILE
  2. 一時作業領域の作成

    mkdir /tmp/META-INF
  3. インデックスファイルを作業ディレクトリーに移動します。

    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
  4. モジュールのインポートに注釈インデックスを利用するように指示します

    アノテーションインデックスを使用するようモジュールインポートに指示し、アノテーションのスキャンでアノテーションを見つけられるようにします。
    状況に応じて、以下のいずれかの方法を選択してください。
    • MANIFEST.MF を使用してモジュールの依存関係を追加する場合は、annotations をモジュール名の後に追加します。
      例を以下に示します。
      Dependencies: test.module, other.module
      上記を以下のように変更します。
      Dependencies: test.module annotations, other.module
    • jboss-deployment-structure.xml を使用してモジュールの依存関係を追加する場合は、モジュールの依存関係に annotations="true" を追加します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.