点燃 PeerClassLoading 以实现传递依赖

问题描述 投票:0回答:1
apache google-bigquery ignite dependency-management gridgain
1个回答
0
投票

AFAIU 当您仅指定 BOM 依赖项时会遇到问题。

这看起来像是您的 Gradle 使用问题。语句

platform('com.google.cloud:libraries-bom:26.22.0')
本身并不声明任何依赖项。 BOM 文件用于指定应该协同工作的特定版本的依赖项集,然后您不需要为这些包含的依赖项指定版本。 例如

implementation platform('com.google.cloud:libraries-bom:26.22.0')
implementation 'com.google.cloud:google-cloud-bigquery'
implementation 'com.google.cloud:google-cloud-storage'

如果您只声明对 BOM 的依赖,或者只复制 BOM 文件,您将无法获得您需要的实际代码。


如果您想从应用程序运行任务,对等类加载是加载库的可行选项。在这种情况下,您的应用程序应该具有任务代码+所有依赖项。服务器不应该有任何这些依赖项。然后,当服务器尝试执行任务时,它会要求客户端共享所有必需的类。


部署 Maven 依赖项的另一个好选择是使用 GridGain Control CenterCode Deployment 功能。您可以将集群连接到控制中心并使用其 UI 来操作已部署的代码 - 您指定 Maven 工件或上传要部署的文件,系统会处理依赖项、版本控制等。同样,仅指定 BOM不起作用 - 您需要应用程序使用的实际库(例如

com.google.cloud:google-cloud-bigquery:2.23.2
)。

© www.soinside.com 2019 - 2024. All rights reserved.