問題
Apache Commons Lang3
を使用するサービス ビルダー モジュールがあります。 私たちの Liferay バージョンはApache Commons Lang3
バージョン 3.11 を使用しています。-
このモジュールでは、
build.gradle
内で次のように依存関係を定義しました。compileOnly group: "com.liferay.portal", name: "release.dxp.api"
compileOnly group: 'org.apache.commons', name: 'commons-lang3', version: '3.11' - ただし、モジュールをビルドすると、バージョン 3.12 がマニフェストに追加されます。
-
依存関係タスクを確認すると、次のように表示されます。
+--- com.liferay.portal:release.dxp.bom.third.party:7.4.13.u40
| +--- org.apache.commons:commons-lang3:3.12.0 (c)
| \--- javax.activation:activation:1.1 (c)
+--- com.liferay.portal:release.dxp.bom:7.4.13.u40
...
org.apache.commons:commons-lang3:3.11.0 -> 3.12.0 - 意味
com.liferay.portal:release.dxp.bom.third.party
マニフェストに 3.12 を追加しています。
Environment
- 開発者ツール
解決策
この問題には 2 つの解決策が考えられます。
-
必要な
bundle:version
をcompileInclude
でbuild.gradle
に含めます。 これにより、モジュール JAR のlib
フォルダーにライブラリとそのすべての依存関係を埋め込み、モジュールのBundle-ClassPath
マニフェストに JAR を追加することで、release.dxp.api
の外部にあるすべての依存関係がデプロイされます。ヘッダ:compileOnly group: "com.liferay.portal", name: "release.dxp.api"
compileInclude group: "org.apache.commons", name: "commons-lang3", version: "3.11" -
または、
build.gradle
のワークスペースの依存関係バージョンを上書きします (ワークスペースのルートにあるGETTING_STARTED.markdown#Overwrite_dependency_in_multiple_projects
を参照してください):subprojects {
configurations.all {
resolutionStrategy.force 'org.apache.commons:commons-lang3:3.11'
}
}
追加情報
- 詳細については、 サード パーティ ライブラリ パッケージの依存関係の解決 を参照してください。