nexus-blobstore-google-cloud无法创建Blobstore

时间:2019-02-05 16:23:01

标签: nexus3

我已经成功构建并安装了Nexus blobstore-google-cloud插件,该插件取自github中该插件的master分支的最新版本。它安装在运行GCP托管VM的Nexus 3.15.2中。与VM关联的服务帐户已被授予Project Admin角色,只是为了排除权限是我们看到的问题的原因。我使用gcloud util提取了该服务帐户的密钥文件,并将GOOGLE_APPLICATION_CREDENTIALS变量设置为指向该文件。 GCP项目已启用存储和数据存储区API,并创建了数据存储区数据库。

当我通过Web UI,以默认管理员用户身份登录并尝试创建Google Blobstore时,我输入了该blobstore的名称,我希望其使用的存储桶的名称以及该存储桶的路径JSON密钥文件。结果是弹出窗口显示

"DANGER: org.sonatype.nexus.blobstore.AccumulatingBlobStoreMetrics.<init>(JJJZ)V"

这是弹出窗口提供的所有内容。在联系日志文件中看到一条痕迹

2019-02-05 16:14:57,179+0000 INFO  [qtp388567085-41]  admin org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreMetricsStore - Blob store metrics file GoogleCloudPropertiesFile{key=503C640E-3D9DB697-52F06C80-C51BBC0D-94D378F5-metrics.properties} not found - initializing at zero.
2019-02-05 16:14:57,439+0000 ERROR [qtp388567085-41]  admin org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: coreui_Blobstore.create, java-method: org.sonatype.nexus.coreui.BlobStoreComponent.create
java.lang.NoSuchMethodError: org.sonatype.nexus.blobstore.AccumulatingBlobStoreMetrics.<init>(JJJZ)V
        at org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreMetricsStore.getCombinedMetrics(GoogleCloudBlobStoreMetricsStore.java:136)
        at org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreMetricsStore.getMetrics(GoogleCloudBlobStoreMetricsStore.java:132)
        at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
        at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
        at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)
        at org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStore.getMetrics(GoogleCloudBlobStore.java:318)
        at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
        at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
        at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76)
@                                                                                                                   

在上面的实例中,我指的是已经存在的GCP存储桶,但是当我允许插件创建自己的存储桶时,我会得到相同的结果。

我也尝试过在设置和不设置env var GOOGLE_APPLICATION_CREDENTIALS的情况下进行此测试,并且设置了该设置,但是将密钥文件的路径设置为未设置,这似乎没有任何区别。

我已经运行了插件集成测试,它们都通过了。我可以看到Nexus在GCP存储桶中创建了文件夹,因此它似乎可以访问它,但是blobstore从未出现在blobstores列表中。

有人有什么想法可以帮助您查找故障吗?

谢谢

0 个答案:

没有答案