NoClassDefFoundError when 运行 本地测试仅包含 POM 中的 tenant-scp-neo

NoClassDefFoundError when running local tests with only tenant-scp-neo included in POM

受此启发blog entry,我尝试在经典 SAP Neo SCP 上为我们现有的应用程序实施多租户。

我添加了依赖

<dependency>
    <groupId>com.sap.cloud.s4hana.cloudplatform</groupId>
    <artifactId>tenant-scp-neo</artifactId>
    <version>1.9.5</version>
</dependency>

到我的 POM 并通过

在测试程序中访问租户
String tenantId = TenantAccessor.getCurrentTenant().getTenantId();

然后,我得到了这个错误

java.lang.NoClassDefFoundError: com/google/common/collect/Multiset
    at com.sap.cloud.sdk.cloudplatform.monitoring.ExceptionMonitor.<init>(ExceptionMonitor.java:30) ~[core-1.9.5.jar:na]
    at com.sap.cloud.sdk.cloudplatform.monitoring.ExceptionMonitor.<clinit>(ExceptionMonitor.java:28) ~[core-1.9.5.jar:na]
    at com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory$CloudLogger.<init>(CloudLoggerFactory.java:67) ~[core-1.9.5.jar:na]
    at com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory$CloudLogger.<init>(CloudLoggerFactory.java:47) ~[core-1.9.5.jar:na]
    at com.sap.cloud.sdk.cloudplatform.logging.CloudLoggerFactory.getLogger(CloudLoggerFactory.java:19) ~[core-1.9.5.jar:na]
    at com.sap.cloud.sdk.cloudplatform.tenant.ScpNeoTenantFacade.<clinit>(ScpNeoTenantFacade.java:21) ~[tenant-scp-neo-1.9.5.jar:na]

我该如何解决这个问题?

经过一些调查,问题似乎出在 Maven 存储库(在 .m2 文件夹中)中的一个损坏的 guava jar 文件。删除相应的文件夹并让 Maven 再次下载它们解决了这个问题。