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 を使用するには、ビルド設定に以下のようなコードを追加します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
上記の例には、
<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 リリースのバージョンと一致します。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
JBoss JavaEE Specs Bom
jboss-javaee-6.0
BOM には、JBoss EAP によって使用される Java EE Specification API JAR が含まれています。
この BOM をプロジェクトで使用するには、JSP のバージョンが含まれる GAV に対する依存関係と、アプリケーションのビルドおよびデプロイに必要だった Servlet API JAR を追加します。
以下の例では、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
3.0.2.Final-redhat-x
バージョンの jboss-javaee-6.0
BOM が使用されています。
JBoss EAP BOM とクイックスタート
JBoss BOM は jboss-bom プロジェクト (https://github.com/jboss-developer/jboss-eap-boms) にあります。
クイックスタートは、Maven リポジトリーのユースケース例を提供します。下表に、クイックスタートによって使用される Maven BOM を示します。
Expand
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 を使用して完全機能にアクセスします。 |
以下の例では、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
6.2.0.GA
バージョンの jboss-javaee-6.0-with-hibernate
BOM を使用されています。
JBoss クライアント BOM
JBoss EAP サーバービルドには、
jboss-as-ejb-client-bom
と jboss-as-jms-client-bom
の 2 つのクライアント BOM が含まれています。
クライアント BOM は、依存関係管理セクションを作成したり、依存関係を定義したりしません。クライアント BOM は他の BOM の集合体で、リモートクライアントのユースケースに必要な依存関係のセットをパッケージ化するために使用されます。
以下の例では、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
この例では、
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
7.3.0.Final-redhat-x
バージョンの jboss-as-ejb-client-bom
クライアント BOM が使用されています。
7.3.0.Final-redhat-x
バージョンの jboss-as-jms-client-bom
クライアント BOM が使用されています。
Maven 依存関係および BOM POM ファイルの詳細は、Apache Maven Project - Introduction to the Dependency Mechanism を参照してください。