5.2. Maven プロジェクト構造の確認

/path/to/output/mavenized/<APPLICATION_NAME>/ ディレクトリーには、以下の項目が含まれます。

  • ルート POM ファイル。これは、最上位ディレクトリーの pom.xml ファイルです。
  • BOM ファイル。これは、-bom で終わるディレクトリーの POM ファイルです。
  • 1 つ以上のアプリケーション POM ファイル。各モジュールには、アーカイブの名前が付けられたディレクトリーに POM ファイルがあります。

サンプルの jee-example-app-1.0.0.ear アプリケーションは、WAR と複数の JAR を含む EAR アーカイブです。これらのアーティファクトごとに個別のディレクトリーが作成されます。以下は、このアプリケーション用に作成された Maven プロジェクト構造です。

/path/to/output/mavenized/jee-example-app/
    jee-example-app-bom/pom.xml
    jee-example-app-ear/pom.xml
    jee-example-services2-jar/pom.xml
    jee-example-services-jar/pom.xml
    jee-example-web-war/pom.xml
    pom.xml

生成された各ファイルを確認し、プロジェクトに合わせてカスタマイズします。Maven POM ファイルの詳細は、Apache Maven ドキュメントの「Introduction to the POM」セクションを参照してください。

ルート POM ファイル

jee-example-app-1.0.0.ear アプリケーションのルート POM ファイルは /path/to/output/mavenized/jee-example-app/pom.xml にあります。このファイルは、すべてのプロジェクトモジュールのディレクトリーを特定します。

以下のモジュールは、サンプルの jee-example-app-1.0.0.ear アプリケーションのルート POM の一覧に記載されています。

<modules>
  <module>jee-example-app-bom</module>
  <module>jee-example-services2-jar</module>
  <module>jee-example-services-jar</module>
  <module>jee-example-web-war</module>
  <module>jee-example-app-ear</module>
</modules>
注記

必要に応じて、モジュールの一覧がプロジェクトの適切なビルド順序に一覧表示されるように、必ずモジュールの一覧の順番を変更してください。

また、ルート POM は Red Hat JBoss Enterprise Application Platform Maven リポジトリー を使用してプロジェクトの依存関係をダウンロードするように設定されます。

BOM ファイル

BOM (Bill of Materials) ファイルは、-bom で終わるディレクトリーに生成されます。サンプルアプリケーション jee-example-app-1.0.0.ear の場合、BOM ファイルは /path/to/output/mavenized/jee-example-app/jee-example-app-bom/pom.xml にあります。このBOMの目的は、プロジェクトで使用されるサードパーティの依存関係のバージョンを 1 か所で定義することです。BOM の使用に関する詳細は、Apache Maven ドキュメントの「Introduction to the dependencies mechanism」セクションを参照してください。

以下の依存関係は、jee-example-app-1.0.0.ear アプリケーションの BOM に一覧表示されています。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.6</version>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.5</version>
    </dependency>
  </dependencies>
</dependencyManagement>

アプリケーション POM ファイル

Maven が可能なアプリケーションモジュールには、POM ファイルが含まれる個別のディレクトリーがあります。ディレクトリー名には、アーカイブタイプに応じてアーカイブの名前と、接尾辞 -jar-war、または -ear で終わるものが含まれます。

各アプリケーション POM ファイルには、以下を含むモジュールの依存関係が一覧表示されます。

  • サードパーティーライブラリー
  • Java EE API
  • アプリケーションサブモジュール

たとえば、jee-example-app-1.0.0.ear EAR (/path/to/output/mavenized/jee-example-app/jee-example-app-ear/pom.xml) の POM ファイルには、以下の依存関係の一覧が記載されます。

<dependencies>
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.6</version>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-web-war</artifactId>
    <version>1.0</version>
    <type>war</type>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-services-jar</artifactId>
    <version>1.0</version>
  </dependency>
  <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jee-example-services2-jar</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>