【问题标题】:在 Google Cloud Shell 中运行示例 Google Maven 项目
【发布时间】:2022-01-19 01:54:07
【问题描述】:

我是 GCP 世界的新手。我正在尝试在 Cloud Shell 上的 Google 的 Github 存储库中运行一个 pubsub 示例 (https://github.com/googleapis/java-pubsub/blob/HEAD/samples/snippets/src/main/java/pubsub/SubscribeWithAvroSchemaExample.java)。

他们的文档还包含指向 Cloud Shell (https://github.com/googleapis/java-pubsub/tree/ff9c9c15a9efb10d5cbc9328c7a703a20b5d4b44#samples) 的链接

我可以通过运行mvn clean install 在云外壳上构建。但是当我运行那个Java类SubscribeWithAvroSchemaExample.java(填写项目ID和订阅ID后),我得到以下错误

satish_anupindi84@cloudshell:~$ cd '/home/satish_anupindi84' && 环境 '/usr/lib/jvm/java-11-openjdk-amd64/bin/java' '-Dfile.encoding=UTF-8' '-cp' '/home/satish_anupindi84/.theia/workspace-storage/e742f48ad7fde7236560e8cf9e48d278/redhat.java/jdt_ws/jdt.ls-java-project/bin' 线程“主”中的“pubsub.SubscribeWithAvroSchemaExample”异常 java.lang.Error:未解决的编译问题:

at pubsub.SubscribeWithAvroSchemaExample.main(SubscribeWithAvroSchemaExample.java:39)

有人可以试试这个并告诉我他们得到了什么吗?

手动运行,没有任何进展

satish_anupindi84@cloudshell:~/cloudshell_open/java-pubsub-2$ cd 样本/sn-ps/ satish_anupindi84@cloudshell:~/cloudshell_open/java-pubsub-2/samples/sn-ps$ 环境'/usr/lib/jvm/java-11-openjdk-amd64/bin/java' '-Dfile-encoding=UTF-8' 'pubsub.SubscribeWithAvroSchemaExample' 错误: 无法找到或加载主类 pubsub.SubscribeWithAvroSchemaExample 原因: java.lang.ClassNotFoundException: pubsub.SubscribeWithAvroSchemaExample

附上截图。

【问题讨论】:

  • 错误提示运行mvn install时代码没有正确编译(“未解决的编译问题”)。请查看该步骤的输出并使用任何错误更新您的问题,而不是包含可能很长的日志集。我假设您已经遵循了先决条件,包括创建项目、启用计费、设置 pub/sub ...
  • 是的,我做到了。构建成功。我不知道还有什么问题。

标签: java google-cloud-platform avro publish-subscribe google-cloud-pubsub


【解决方案1】:

我无法重现此问题。我的猜测是,当您运行 mvn clean install 时,它还运行了 sn-ps 中包含的测试。其中一些测试可能需要时间并且可能会失败,这可能会破坏构建过程。如果您只是想测试一个 sn-p,那么您可以跳过这些测试。

我的建议是添加一个标志来跳过测试:

更新:检查您的当前目录。确保在您的$HOME/cloudshell_open/java-pubsub-3/samples/snippets 上运行此命令。

mvn clean install -DskipTests

之后,确保构建返回成功,然后通过 Cloud Editor 重新运行示例。

我做的步骤:

  1. 打开一个终端。
  2. 将 repo 克隆到 $HOME 目录:git clone https://github.com/googleapis/java-pubsub.git
  3. cd java-pubsub/samples/snippets
  4. mvn clean install -DskipTests 构建结果应如下所示:

  1. 在 Cloud Shell Editor 中打开 samples/snippets 工作区。
  2. 转到您喜欢的类,然后单击主方法附近的运行按钮。右键单击并运行也应该可以工作。

我能够让它正常工作。截图如下:

【讨论】:

  • 我也使用了man clean install -DskipTests。它成功完成。但是当我右键单击并运行该类时,它给了我一个“构建失败,你想继续吗?”右下角弹出。我无法检查它失败的原因——即使在云 shell 中运行通过了!您是否使用手动显示的命令在云 shell 上运行它?当我右键单击并运行时它应该运行它,对吗?
  • 请检查编辑,我也无法手动运行它。
  • @user2405589 我查看了您的构建结果,发现您正在构建整个库而不是 sn-ps。在samples/snippets 目录运行构建命令,然后重试。或者按照我做的步骤。我更新了我的答案。
  • @user2405589 我通过单击主方法附近的运行按钮来运行代码。右键单击并运行应该也可以。我还使用CTRL + ~ 在编辑器中打开终端并在那里运行命令。
  • 谢谢。不知道为什么直接从 github 页面去 cloud shell 就不行。不知何故,类路径没有正确定义
猜你喜欢
  • 2020-10-09
  • 2017-12-21
  • 2019-05-24
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多