运行 示例 Google Google 云中的 Maven 项目 Shell

Running sample Google Maven project in Google Cloud Shell

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

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

的链接

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

satish_anupindi84@cloudshell:~$ cd '/home/satish_anupindi84' && env '/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' Exception in thread "main" java.lang.Error: Unresolved compilation problem:

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

有人会试一试并告诉我他们得到了什么吗?

运行 手动,并没有取得任何进展

satish_anupindi84@cloudshell:~/cloudshell_open/java-pubsub-2$ cd samples/snippets/ satish_anupindi84@cloudshell:~/cloudshell_open/java-pubsub-2/samples/snippets$ env '/usr/lib/jvm/java-11-openjdk-amd64/bin/java' '-Dfile-encoding=UTF-8' 'pubsub.SubscribeWithAvroSchemaExample' Error: Could not find or load main class pubsub.SubscribeWithAvroSchemaExample Caused by: java.lang.ClassNotFoundException: pubsub.SubscribeWithAvroSchemaExample

附上截图。

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

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

更新:检查您的当前目录。确保在 $HOME/cloudshell_open/java-pubsub-3/samples/snippets.

上 运行 此命令
mvn clean install -DskipTests

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

我做的步骤:

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

  1. 在 Cloud Shell 编辑器中打开 samples/snippets 工作区。
  2. 转到您喜欢的 class 并单击主要方法附近的 运行 按钮。右键单击和 运行 也应该有效。

我能够让它正常工作。这是屏幕截图: