第 3 章 クラスローディングとモジュール
3.3. MAVEN を使用した MANIFEST.MF エントリーの生成
Maven JAR、EJB、または WAR パッケージングプラグインを使用する Maven プロジェクトで
は、Dependencies エントリーを持つ MANIFEST.MF ファイルを生成することができます。この場 合、依存関係の一覧は自動的に生成されず、pom.xml に指定された詳細が含まれる MANIFEST.MF ファイルのみが作成されます。
Maven を使用して MANIFEST.MF エントリーを生成する前に、以下のものが必要になります。
JAR、EJB、または WAR プラグイン (maven-jar-plugin、maven-ejb-plugin、または maven-war-plugin) のいずれかを使用している Maven プロジェクト。
プロジェクトのモジュール依存関係の名前を知っている必要があります。JBoss EAP に含まれ る静的モジュールのリストは、「含まれるモジュール」を参照してください。モジュールが他 のデプロイメントである場合は、JBoss EAP『設定ガイド』の「動的モジュールの命名規則動的モジュールの命名規則」
を参照してモジュール名を判断してください。
モジュール依存関係が含まれる
モジュール依存関係が含まれる
MANIFEST.MFファイルの生成 ファイルの生成
1. プロジェクトの pom.xml ファイルにあるパッケージングプラグイン設定に次の設定を追加しま す。
2. モジュール依存関係のリストを <Dependencies> 要素に追加します。MANIFEST.MF ファイル に依存関係を追加するときと同じ形式を使用します。
<configuration>
<archive>
<manifestEntries>
<Dependencies></Dependencies>
</manifestEntries>
</archive>
</configuration>
<Dependencies>org.javassist, org.apache.velocity</Dependencies>
ここでは、optional 属性と export 属性を使用することもできます。
3. Maven アセンブリーゴールを使用してプロジェクトをビルドします。
アセンブリーゴールを使用してプロジェクトをビルドすると、指定のモジュール依存関係を持
つ MANIFEST.MF ファイルが最終アーカイブに含まれます。
例: pom.xml で設定されたモジュール依存関係
注記 注記
この例は WAR プラグインの例になりますが、JAR や EJB プラグイン (maven-jar-plugin や maven-ejb-plugin) でも動作します。
3.4. モジュールが暗黙的にロードされないようにする
暗黙的な依存関係がロードされないようデプロイ可能なアプリケーションを設定できます。これは、ア プリケーションサーバーにより提供される暗黙的な依存関係とは異なるバージョンのライブラリーやフ レームワークがアプリケーションに含まれる場合に役に立つことがあります。
前提条件 前提条件
暗黙的な依存関係を除外するソフトウェアプロジェクト。
除外するモジュール名を知っている必要があります。暗黙的な依存関係のリストや状態は「暗 黙的なモジュール依存関係」を参照してください。
jboss-deployment-structure.xml への依存関係除外設定の追加への依存関係除外設定の追加
1. アプリケーションに jboss-deployment-structure.xml という名前のファイルがない場合は、
このファイルを新規作成し、プロジェクトに追加します。このファイルは <jboss-deployment-structure> がルート要素の XML ファイルです。
<Dependencies>org.javassist optional, org.apache.velocity export</Dependencies>
[Localhost ]$ mvn assembly:single
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>org.javassist, org.apache.velocity</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
Web アプリケーション (WAR) では、このファイルを WEB-INF/ ディレクトリーに追加しま す。EJB アーカイブ (JAR) では、このファイルを META-INF/ ディレクトリーに追加します。
2. <deployment> 要素をドキュメントルート内に作成し、その中に <exclusions> 要素を作成し ます。
3. exclusions 要素内で、除外する各モジュールに対して <module> 要素を追加します。name 属 性をモジュールの名前に設定します。
例: 2 つのモジュールの除外
3.5. サブシステムをデプロイメントから除外
サブシステムの除外は、サブシステムの削除と同じ効果がありますが、単一のデプロイメントにのみ適 用されます。jboss-deployment-structure.xml 設定ファイルを編集することにより、デプロイメント からサブシステムを除外できます。
サブシステムの除外 サブシステムの除外
1. jboss-deployment-structure.xml ファイルを編集します。
2. <deployment> タグ内に以下の XML を追加します。
3. jboss-deployment-structure.xml ファイルを保存します。
サブシステムのデプロイメントユニットプロセッサーがデプロイメント上で実行されなくなります。
例: jboss-deployment-structure.xml ファイル
<jboss-deployment-structure>
</jboss-deployment-structure>
<deployment>
<exclusions>
</exclusions>
</deployment>
<module name="org.javassist" />
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.javassist" />
<module name="org.dom4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
<exclude-subsystems>
<subsystem name="SUBSYSTEM_NAME" />
</exclude-subsystems>