0

我的 GCP Cloud Run 服务出现以下错误:

Error: Could not find or load main class com.sdas.demo.sd.Application
Caused by: java.lang.ClassNotFoundException: com.sdas.demo.sd.Application

我在做什么:

  1. 我有一个使用 jib-maven-plugin 的 spring boot 应用程序。在 BitBucket 管道中,我正在执行以下命令:

    mvn clean compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build -Dimage=eu.gcr.io/sdas-demo-dev/temp-service

  2. 之后,使用来自 BitBucket 管道的 gcloud 命令将此 GCR 映像部署到 Cloud Run。此部署失败,出现“无法加载主类”错误。

但是,如果我mvn clean compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build -Dimage=eu.gcr.io/sdas-demo-dev/temp-service从我的计算机上运行 git bash 以获得相同的 Spring Boot 应用程序代码,然后将其部署到 Cloud Run(通过 gcloud 命令或通过控制台或通过管道);它已成功部署。

mainClass在 pom.xml 的 jib-maven-plugin 下使用了 ' ' 标签。但它仍然无法找到或加载主类。

任何人都可以帮助如何识别问题吗?这是类路径问题还是环境问题?

4

1 回答 1

1

问题现已排序。

根本原因:

  • '没有找到要编译的资源' - 我在构建日志中找到了这条消息。此消息提醒我应用程序包中出现问题。
  • 我的系统在 Windows 10 上运行,我的应用程序目录以“Java.com.demo.sdas”(大写的 J)开头。由于 Windows 区分大小写;它不会引起问题。
  • 在 Linux 服务器上运行的 BitBucket 管道,它区分大小写。因此无法找到以“Java.com.demo.sdas”开头的应用程序目录。

解决方案:将目录重命名为“java”,然后一切都按预期工作。

于 2021-10-01T17:23:27.523 回答