依存関係の設定方法

プロジェクトで外部のアーティファクトを使用するには、それらの依存関係を設定する必要があります。これを行うには、アーティファクトの属性を検索し、ビルドシステム(GradleMaven、またはAnt/Ivyのいずれか)の依存関係エントリにプラグインします。ビルドシステムは、プロジェクトを正常にコンパイルするために必要な依存関係のアーティファクトをダウンロードします。

アーティファクトを依存関係として指定する前に、まずその属性を見つける必要があります。アーティファクトには、以下の属性があります。

  • グループID:オーサリング組織
  • アーティファクトID:名前/識別子
  • バージョン:リリース番号

このチュートリアルでは、プロジェクトに適切な依存関係があることを確認する方法を説明します。

コアのアーティファクトの検索

それぞれのLiferayアーティファクトはJARファイルであり、META-INF/MANIFEST.MFファイルにアーティファクトのOSGiメタデータが含まれています。また、マニフェストはアーティファクトの属性も指定します。たとえば、以下の2つのOSGiヘッダーは、アーティファクトIDとバージョンを指定しています。

Bundle-SymbolicName:  [artifact ID]
Bundle-Version: [version]

以下の表では、それぞれのコアLiferay DXPアーティファクトのグループID、アーティファクトID、バージョン、およびオリジンがリストされています。

コアLiferay DXPアーティファクト

ファイルグループIDアーティファクトIDバージョンオリジン
portal-kernel.jarcom.liferay.portalcom.liferay.portal.kernel(JARのMANIFEST.MFを参照)フィックスパックZIP、Liferay DXPインストール、またはLiferay DXP依存関係ZIP
portal-impl.jarcom.liferay.portalcom.liferay.portal.impl(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
portal-test.jarcom.liferay.portalcom.liferay.portal.test(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
portal-test-integration.jarcom.liferay.portalcom.liferay.portal.test.integration(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
util-bridges.jarcom.liferay.portalcom.liferay.util.bridges(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
util-java.jarcom.liferay.portalcom.liferay.util.java(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
util-slf4j.jarcom.liferay.portalcom.liferay.util.slf4j(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
util-taglibs.jarcom.liferay.portalcom.liferay.util.taglib(JARのMANIFEST.MFを参照)フィックスパックZIP、またはLiferay DXPの.war
com.liferay.* JARファイルcom.liferay(JARのMANIFEST.MFを参照)(JARのMANIFEST.MFを参照)フィックスパックZIP、Liferay DXPインストール、Liferay DXP依存関係ZIP、またはOSGi ZIP

次は、Liferay DXPアプリと独立したモジュールのアーティファクトを検索する方法について説明します。

Liferayアプリと独立したアーティファクトの検索

独立したモジュールおよびLiferay DXPのアプリを構成するモジュールは、Liferay DXPコアの一部ではありません。ただし、依存関係を宣言する場合は、アーティファクト属性を見つける必要があります。以下のリソースは、Liferay DXPのアプリと独立したモジュールのアーティファクトの詳細を提供します。

リソースアーティファクトタイプ
アプリケーションマネージャデプロイされたモジュール
参照ドキュメントLiferay DXPモジュール(リリースごとに)
Maven Central全アーティファクトタイプ:Liferay DXPとサードパーティ、モジュールと非モジュール

アプリケーションマネージャは、デプロイされたモジュールに関する情報の最適なソースです。以下で、その詳細を説明します。

アプリケーションマネージャ

アプリケーションマネージャは、Liferayインスタンスに何がデプロイされているかを把握しています。したがって、アプリケーションマネージャを使用して、探しているモジュールを見つけることができます。

デプロイされたモジュールの情報を取得するには、以下の手順に従います。

  1. Liferay DXPで、[コントロールパネル][ アプリ] → *[アプリケーションマネージャ]*に移動します。

  2. 表示名、シンボル名、または関連キーワードを使って、モジュールを検索します。アプリでモジュールを参照することもできます。参照でも検索でも、アプリケーションマネージャはモジュールのアーティファクトIDとバージョン番号を表示します。

図1:デプロイされたモジュールのアーティファクトIDとバージョン番号を検査できます。

図2:アプリケーションマネージャは、Liferayと独立したモジュールを集約します。

デプロイされたモジュールのグループがわからない場合は、Felix Gogoシェルを使用して見つけてください。

  1. [コントロールパネル] → [設定] → *[Gogo Shell]*で、Gogoシェルのポートレットに移動します。コマンドは、提供されたFelix Gogoシェルのコマンドプロンプトで入力できます。

  2. 表示名(例: Liferay Bookmarks API)またはキーワードで、モジュールを検索します。検索結果が出たら、モジュールの番号をメモします。この番号を次のステップで使用します。たとえば、以下の結果は、Liferay Bookmarks APIモジュールの番号が52であることを示しています。

    g!lb | grep "Liferay Bookmarks API"
    
    52|Active     |   10|Liferay Bookmarks API (2.0.1)
    
  3. モジュールのマニフェストヘッダーを一覧表示するには、headersコマンドにモジュール番号を渡します。検索結果のBundle-Vendor値をメモしておいてください。後の手順で、アーティファクトグループと照合するためです。

    g!headers 52
    
    Liferay Bookmarks API (52)
    --------------------------
    Manifest-Version = 1.0
    Bnd-LastModified = 1464725366614
    Bundle-ManifestVersion = 2
    Bundle-Name = Liferay Bookmarks API
    Bundle-SymbolicName = com.liferay.bookmarks.api
    Bundle-Vendor = Liferay, Inc.
    Bundle-Version = 2.0.1
    ...
    
  4. Gogoシェルのセッションから切断します。

    g!disconnect
    
  5. Maven CentralまたはMVNRepository上で、モジュールのアーティファクトIDを使って、モジュールを検索します。

  6. 手順3のBundle-Vendor値を一覧表示にあるアーティファクトを提供するグループと照合して、グループIDを決定します。

次は、Liferay DXPの参照ドキュメンテーションを使用して、Liferay DXPのアプリモジュールの属性を見つける方法を説明します。

参照ドキュメント

Liferay DXPのアプリであるJavadocでは、各アプリケーションモジュールのアーティファクトID、バージョン番号、表示名が一覧表示されます。ここは、まだLiferay DXPインスタンスにデプロイされていないLiferay DXPアプリモジュールを検索するのに最適な場所です。

JavadocでLiferay DXPのアプリモジュールの属性を見つけるには、以下の手順に従います。

  1. アプリケーションモジュールクラスのJavadocに移動します。クラスのJavadocへのリンクがない場合は、https://docs.liferay.com/dxp/appsを参照して見つけてください。

  2. クラスのパッケージ名をコピーします。

  3. *[概要]*ページに移動します。

  4. *[概要]*ページで、手順2でコピーしたパッケージ名を検索します。

パッケージ名の上にある見出しには、モジュールのアーティファクトID、バージョン番号、表示名が表示されます。すべてのアプリケーションモジュールのグループIDはcom.liferayです。

図3:Liferay DXPアプリケーションのJavadocの概要では、各アプリケーションモジュールの表示名がリストされており、その後ろにコロンで区切られた文字列のグループID、アーティファクトID、およびバージョン番号が続いています。これは、Gradleのアーティファクトのシンタックスです。

次は、MVNRepositoryおよびMaven Centralでアーティファクトを検索する方法について説明します。

Maven Central

ほとんどのアーティファクトは、タイプやオリジンに関係なく、 MVNRepositoryおよびMaven Centralにあります。 これらのサイトは、クラスパッケージに基づいてアーティファクトを見つけるのに役立ちます。一般的に、アーティファクトのパッケージ名の先頭にはアーティファクトのIDが含まれています。たとえば、org.osgi.service.component.annotations.Componentクラスに依存している場合、Mavenサイトの1つでorg.osgi.service.component.annotationsというパッケージ名を検索します。

これで、アーティファクトの属性値が取得できたので、アーティファクトの依存関係を設定する準備が整いました。

依存関係の設定方法

システムを構築するための依存関係の指定は複雑ではありません。グループID、アーティファクトID、およびバージョン番号を含む依存関係エントリを指定して、プロジェクトのビルドファイルを編集します。

以下に示すように、ビルドシステムごとに異なるアーティファクト属性名が使用されることに注意してください。

アーティファクトの用語

フレームワークグループIDアーティファクトIDバージョン
Gradlegroupnameversion
MavengroupIdartifactIdversion
Ivyorgnamerev

以下の例は、Gradle、Maven、およびIvyに対するLiferayのJournal APIモジュールの依存関係の設定を示しています。

Gradle

build.gradleファイルで設定された依存関係は、以下のとおりです。

dependencies {
compileOnly group: "com.liferay", name: "com.liferay.journal.api", version: "1.0.1"
...
}

Maven

pom.xmlファイルで設定された依存関係は、以下のとおりです。

<dependency>
<groupId>com.liferay</groupId>
<artifactId>com.liferay.journal.api</artifactId>
<version>1.0.1</version>
</dependency>

Ivy

ivy.xmlファイルで設定された依存関係は、以下のとおりです。

<dependency name="com.liferay.journal.api" org="com.liferay" rev="1.0.1" />

アーティファクトを見つけて依存関係として設定する方法は、以上です。

関連トピック

Using the App Manager

Reference

Resolving Third Party Library Package Dependencies

Tooling

Portlets

« モジュール開発の開始拡張ポイントを見つける »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています