Liferay Workspaceの設定
Liferay Workspace は使い方が簡単で、基本は 最初から 始めることで学ぶことができます。 もしあなたがプロジェクトを作成したり、コードをデプロイしたり、Dockerコンテナを使ったりしているのであれば、ここでの情報は必要ないかもしれない。 しかし、Workspaceの機能すべてを深く掘り下げて学びたいのであれば、ここはまさにうってつけの場所です。
Liferay Workspaceとバンドルプラグインの更新
Liferay Workspaceは、開発者の生産性を高めるために常に更新されており、ワークスペースを最新の状態にするのは簡単なプロセスです。
-
Liferay のリポジトリにある Workspace のリリース にアクセスしてください。 バージョンは一覧表に表示されますので、必要なバージョン番号をメモしておいてください。
-
ワークスペースのルートフォルダにある
settings.gradleファイルを開きます。 -
dependenciesブロックで、リポジトリで見つけたバージョンにバージョンを更新します。 最新リリースを使い続けたい場合は、バージョン番号の代わりにテキストlatest.releaseを指定してください。dependencies { classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "[WORKSPACE_VERSION]" } -
ファイルを保存して閉じます。 アップグレードを実行するには、
tasksなどのGradleコマンドを実行します。./gradlew tasks
これで、ワークスペースがアップグレードされました。
Liferayのバージョンを更新する
ワークスペースがコンパイルするLiferayのバージョンを更新することをお勧めします。 これは、単一のプロパティによって処理されます。
liferay.workspace.product=[$LIFERAY_LEARN_PORTAL_WORKSPACE$]
プロパティの値を、コードを開発しているLiferayのバージョンに更新します。 その後、ワークスペースの依存関係が自動的に新しいバージョンに更新されます。
JDK 17または21を使用する
Liferay DXP 2024.Q2+/Portal GA120+
LiferayはJDK 17および21をサポートしています。 JDK 8はサポートが終了しており、JDK 11は非推奨となっています。
Liferay DXP 2024.Q3+/Portal GA129+
LiferayはJDK 17および21をサポートしています。 JDK 11のサポートは削除されました。
JDKでコンパイルした場合は、同じJDKで実行する必要があります。 Workspaceに変更を加える前に、アプリケーションサーバーが新しいJDKで動作していることを確認してください。
前提条件: 古いバージョンの Workspace を使用している場合は、次の 2 つの項目をアップグレードする必要があります。
-
Gradleをバージョン8.5にアップデートしてください。
-
Workspaceのバージョンを少なくとも10.1.0にアップデートしてください(アップグレード手順については上記を参照してください)。
Gradle をアップグレードするには、ワークスペース内の gradle/wrapper/gradle-wrapper.properties ファイルを編集します。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
ワークスペースもアップグレードした場合は、 liferay.workspace.product プロパティが設定されていることを確認してください。 Blade CLI を使用して、 blade init -l と入力することで、このプロパティの最新のリストをいつでも取得できることを覚えておいてください。
古いワークスペースをアップグレードした場合は、ワークスペースの settings.gradle ファイルで Liferay CDN が宣言されていることを確認してください。
maven {
url "http://repository.liferay.com/nexus/content/groups/public"
}
素晴らしい! これで、Liferayプロジェクトで最新のサポート対象JDKを使用する準備が整いました。 既存のプロジェクトがある場合は、追加の手順を踏む必要があります。
サービスビルダープロジェクト
Service Builder プロジェクトを含む古い Workspace をアップグレードした場合は、Service Builder -service モジュールの build.gradle ファイルにこの構成を追加してください。
tasks.withType(JavaCompile) {
// Joddライブラリを使用して生成されたクラスは、JDK 8以降でコンパイルすると読み取れません
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
JAX-WSプロジェクト
JAX-WS プロジェクトがある場合、JDK 11 から削除された javax.xml.soap のクラスが必要です。 今後は、依存関係として手動で指定する必要があります。
コンパイル 'com.sun.xml.ws:jaxws-ri:2.3.2'
ターゲットプラットフォームの管理
通常、Gradleの依存関係を定義する際には、以下のように依存関係のバージョンを指定する必要があります。
dependencies {
compileOnly group: "javax.portlet", name: "portlet-api", version: "3.0.1"
compileOnly group: "javax.servlet", name: "javax.servlet-api"、バージョン: "4.0.1"
}
Liferayプラットフォーム上で作成されたアプリケーションはすべてそのプラットフォームをターゲットとするため、LiferayはLiferayのバージョンを宣言し、他の依存関係をLiferayから継承することで、すべての依存関係を一度に簡単に指定できるようにしています。 そうすれば、上記のような混乱状態にならずに済みます。
対象プラットフォームはデフォルトで有効になっています。使用するために特別な操作は必要ありません。 現在の依存関係の大半は以下のようになっています。
dependencies {
compileOnly group: "com.liferay.portal", name: "release.dxp.api"
}
これにより、Liferayに付随するすべての依存関係が取り込まれます。 何らかの理由で特定の依存関係を指定する必要がある場合は、以下の方法も利用できます。
dependencies {
compileOnly グループ: "com.liferay.portal"、名前: "release.dxp.api"
cssBuilder グループ: "com.liferay"、名前: "com.liferay.css.builder"、バージョン: "3.0.2"
}
これらの例では、Liferay DXP を対象とする release.dxp.apiを使用しています。 Liferay Portal は、Liferay Portal 7.4 GA132 でのみ利用可能な別のアーティファクト release.portal.apiを使用します。四半期リリースと LTS リリースは Liferay DXP のみです。
テスト依存関係の管理
Liferay Workspace 16.0.1 以降では、 統合テスト部品表 (BOM) を選択して、ターゲット プラットフォームからのテスト依存関係のバージョンを解決できます。 これは、 ターゲット プラットフォーム BOMと同じように機能しますが、 testImplementation および testIntegrationImplementation の依存関係に対して機能します。
Liferayは、統合テストの部品表(BOM)を四半期ごとのリリース分のみ公開しています。 四半期リリース以外のターゲットプラットフォームに対してこのプロパティを有効にすると、依存関係の解決に失敗します。
有効にするには、ワークスペースの gradle.properties ファイルにこのプロパティを追加してください。
liferay.workspace.use.test.boms=true
Liferay DXP ターゲット プラットフォームの場合、Liferay Workspace はターゲット プラットフォームのバージョンで com.liferay.portal:release.dxp.bom.test を解決します。Liferay Portal ターゲット プラットフォームの場合、 release.portal.bom.test を解決します。 BOM は、Arquillian JUnit ブリッジ、 com.liferay.portal.test および com.liferay.portal.test.integration モジュール、Liferay のパッチ適用済み Log4j アーティファクト、および bnd を含むテスト依存関係のバージョンを固定します。
BOMが解決したら、 build.gradle ファイルで管理対象のテスト依存関係を宣言する際にバージョン番号を省略してください。
dependencies {
testIntegrationImplementation group: "com.liferay.portal", name: "com.liferay.portal.test.integration"
testImplementation group: "com.liferay", name: "org.apache.logging.log4j"
}
管理対象の依存関係に対して解決された BOM のバージョンを確認するには、テスト構成を調べます。
./gradlew :modules:my-module:dependencies --configuration testImplementation
バンドルダウンロードタイムアウトの設定
CDNリポジトリのパフォーマンスを向上させるには、バンドルのダウンロードタイムアウトを長くすることができます。
downloadBundle {
readTimeout 120 * 1000
}