• 検索結果がありません。

MAVEN を使用した MANIFEST.MF エントリーの生成

第 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>