問題
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'
}
}
追加情報
- 詳細については、 サード パーティ ライブラリ パッケージの依存関係の解決 を参照してください。