2.3.4. プロジェクト依存関係の管理


このトピックでは、Red Hat JBoss Enterprise Application Platform 6 に対する BOM (Bill of Materials) POM の使用について説明します。
BOM は、指定モジュールに対するすべてのランタイム依存関係のバージョンを指定する Maven pom.xml (POM) ファイルです。バージョン依存関係は、ファイルの依存関係管理セクションにリストされています。
プロジェクトは、groupId:artifactId:version (GAV) をプロジェクト pom.xml ファイルの依存関係管理セクションに追加し、<scope>import</scope> および <type>pom</type> 要素の値を指定して、BOM を使用します。

注記

多くの場合、プロジェクト POM ファイルの依存関係によって provided スコープが使用されます。これは、これらのクラスは起動時にアプリケーションサーバーによって提供され、ユーザーアプリケーションとともにパッケージする必要がないためです。

サポート対象の Maven アーティファクト

製品のビルドプロセスの一部として、JBoss EAP のすべてのランタイムコンポーネントは制御された環境でソースよりビルドされます。これにより、バイナリーアーティファクトに悪質なコードが含まれないようにし、製品のライフサイクルが終了するまでサポートを提供できるようにします。これらのアーティファクトは、1.0.0-redhat-1 のように使用される -redhat バージョン修飾子によって簡単に識別可能です。
サポートされるアーティファクトを追加して、設定 pom.xml ファイルをビルドすると、ローカルのビルドおよびテストにて正しいバイナリーアーティファクトが使用されるようになります。-redhat バージョンのアーティファクトは、サポートされるパブリック API の一部であるとは限らず、今後の改訂で変更されることがあります。サポートされるパブリック API の詳細については、本リリースに同梱されている JavaDoc ドキュメントを参照してください。
たとえば、サポートされているバージョンの Hibernate を使用するには、ビルド設定に以下のようなコードを追加します。
 
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-core</artifact>
  <version>4.2.6.Final-redhat-1</version>
  <scope>provided</scope>
</dependency>
Copy to Clipboard Toggle word wrap
上記の例には、<version/> の値が含まれていることに注意してください。依存関係バージョンの設定には、Maven の依存関係管理を使用することが推奨されます。

依存関係管理

Maven には、ビルド全体で直接的および推移的な依存関係のバージョンを管理するメカニズムが含まれています。依存関係管理の使用に関する一般的な情報は、Apache Maven Project の Introduction to the Dependency Mechanism を参照してください。
サポートされる JBoss の依存関係を 1 つ以上ビルドに直接使用しても、ビルドの推移的な依存関係がすべて JBoss アーティファクトによって完全サポートされるとは限りません。Maven の中央リポジトリー、JBoss.org の Maven リポジトリー、およびその他の Maven リポジトリーより、複数のアーティファクトソースの組み合わせが使用されることが一般的です。
JBoss EAP Maven リポジトリーには、サポートされるすべての JBoss EAP バイナリーアーティファクトを指定する依存関係管理 BOM が含まれています。ビルドの直接的および推移的依存関係に対して、サポートされる JBoss EAP 依存関係の優先順位が確実につけられるようにするには、この BOM をビルドで使用します。つまり、該当する場合に推移的な依存関係が、サポートされる正しい依存関係に対して管理されます。この BOM のバージョンは、JBoss EAP リリースのバージョンと一致します。
<dependencyManagement>
  <dependencies>
    ...
    <dependency>
      <groupId>org.jboss.bom</groupId>
      <artifactId>eap6-supported-artifacts</artifactId>
      <version>6.2.0.GA</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>
Copy to Clipboard Toggle word wrap

JBoss JavaEE Specs Bom

jboss-javaee-6.0 BOM には、JBoss EAP によって使用される Java EE Specification API JAR が含まれています。
この BOM をプロジェクトで使用するには、JSP のバージョンが含まれる GAV に対する依存関係と、アプリケーションのビルドおよびデプロイに必要だった Servlet API JAR を追加します。
以下の例では、3.0.2.Final-redhat-x バージョンの jboss-javaee-6.0 BOM が使用されています。
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.spec</groupId>
      <artifactId>jboss-javaee-6.0</artifactId>
      <version>3.0.2.Final-redhat-x</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.jboss.spec.javax.servlet</groupId>
    <artifactId>jboss-servlet-api_3.0_spec</artifactId>
    <scope>provided</scope>
  </dependency>
  <dependency>
    <groupId>org.jboss.spec.javax.servlet.jsp</groupId>
    <artifactId>jboss-jsp-api_2.2_spec</artifactId>
    <scope>provided</scope>
  </dependency>
  ...
</dependencies>
Copy to Clipboard Toggle word wrap

JBoss EAP BOM とクイックスタート

JBoss BOM は jboss-bom プロジェクト (https://github.com/jboss-developer/jboss-eap-boms) にあります。
クイックスタートは、Maven リポジトリーのユースケース例を提供します。下表に、クイックスタートによって使用される Maven BOM を示します。
Expand
表2.1 クイックスタートによって使用される JBoss BOM
Maven artifactId 説明
jboss-javaee-6.0-with-hibernate この BOM は、Java EE full プロファイル BOM 上にビルドし、Hibernate ORM、Hibernate Search、Hibernate Validator などの Hibernate Community プロジェクトを追加します。また、Hibernate JPA Model Gen、Hibernate Validator Annotation Processor などのツールプロジェクトも提供します。
jboss-javaee-6.0-with-hibernate3 この BOM は、Java EE full プロファイル BOM 上にビルドし、Hibernate 3 ORM、Hibernate Entity Manager (JPA 1.0)、Hibernate Validator などの Hibernate Community プロジェクトを追加します。
jboss-javaee-6.0-with-logging この BOM は、Java EE full プロファイル BOM 上にビルドし、JBoss Logging Tools と Log4 フレームワークを追加します。
jboss-javaee-6.0-with-osgi この BOM は、Java EE full プロファイル BOM 上にビルドし、OSGI を追加します。
jboss-javaee-6.0-with-resteasy この BOM は、Java EE full プロファイル BOM 上にビルドし、RESTEasy を追加します。
jboss-javaee-6.0-with-security この BOM は、Java EE full プロファイル BOM 上にビルドし、Picketlink を追加します。
jboss-javaee-6.0-with-tools この BOM は、Java EE full プロファイル BOM 上にビルドし、Arquillian を追加します。また、Arquillian との使用に推奨されるバージョンの JUnit および TestNG も提供します。
jboss-javaee-6.0-with-transactions この BOM には、ワールドクラスのトランザクションマネージャーが含まれます。JBossTS API を使用して完全機能にアクセスします。
以下の例では、6.2.0.GA バージョンの jboss-javaee-6.0-with-hibernate BOM を使用されています。
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.bom.eap</groupId>
      <artifactId>jboss-javaee-6.0-with-hibernate</artifactId>
      <version>6.2.0.GA</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    ...
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <scope>provided</scope>
  </dependency>
  ...
</dependencies>
Copy to Clipboard Toggle word wrap

JBoss クライアント BOM

JBoss EAP サーバービルドには、jboss-as-ejb-client-bomjboss-as-jms-client-bom の 2 つのクライアント BOM が含まれています。
クライアント BOM は、依存関係管理セクションを作成したり、依存関係を定義したりしません。クライアント BOM は他の BOM の集合体で、リモートクライアントのユースケースに必要な依存関係のセットをパッケージ化するために使用されます。
以下の例では、7.3.0.Final-redhat-x バージョンの jboss-as-ejb-client-bom クライアント BOM が使用されています。
<dependencies>
  <dependency>
    <groupId>org.jboss.as</groupId>
    <artifactId>jboss-as-ejb-client-bom</artifactId>
    <version>7.3.0.Final-redhat-x</version>
    <type>pom</type>
  </dependency>
  ...l
</dependencies>
Copy to Clipboard Toggle word wrap
この例では、7.3.0.Final-redhat-x バージョンの jboss-as-jms-client-bom クライアント BOM が使用されています。
<dependencies>
  <dependency>
    <groupId>org.jboss.as</groupId>
    <artifactId>jboss-as-jms-client-bom</artifactId>
    <version>7.3.0.Final-redhat-x</version>
    <type>pom</type>
  </dependency>
  ...
</dependencies>

Copy to Clipboard Toggle word wrap
Maven 依存関係および BOM POM ファイルの詳細は、Apache Maven Project - Introduction to the Dependency Mechanism を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat