ClassNotFoundException - 在构建图像时使用 BitBucket 管道中的 jib-maven-plugin 将其推送到 GCR
ClassNotFoundException - when building the image & push it to GCR using jib-maven-plugin in BitBucket pipeline
我在我的 GCP Cloud 运行 服务中收到以下错误:
Error: Could not find or load main class com.sdas.demo.sd.Application
Caused by: java.lang.ClassNotFoundException: com.sdas.demo.sd.Application
我在做什么:
我有一个 spring 引导应用程序,我在其中使用了 jib-maven-plugin。在 BitBucket 管道中,我正在执行以下命令:
mvn clean compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build -Dimage=eu.gcr.io/sdas-demo-dev/temp-service
之后使用来自 BitBucket 管道的 gcloud 命令将此 GCR 映像部署到云端 运行。此部署失败,错误为 'Could not load main class'.
但是如果我 运行 从我的计算机 git bash spring 启动应用程序代码,然后将其部署到云端 git bash =45=](通过 gcloud 命令或通过控制台或通过管道);部署成功。
我在 pom.xml 的 jib-maven-plugin 下使用了 'mainClass
' 标签。但它仍然无法找到或加载主 class.
任何人都可以帮助识别问题吗?这是 class路径问题还是环境问题?
问题已解决。
根本原因:
- 'No resources found to compile' - 我在构建日志中发现了这条消息。此消息提醒我应用程序包中存在错误。
- 我的系统是 运行 Windows 10,我的应用程序目录以 'Java.com.demo.sdas'(大写字母 J)开头。由于 Windows 区分大小写;它没有引起问题。
- BitBucket 管道 运行 在 Linux 服务器上并且区分大小写。因此无法找到以'Java.com.demo.sdas'.
开头的应用程序目录
解决方案:将目录重命名为 'java' 然后一切正常。
我在我的 GCP Cloud 运行 服务中收到以下错误:
Error: Could not find or load main class com.sdas.demo.sd.Application
Caused by: java.lang.ClassNotFoundException: com.sdas.demo.sd.Application
我在做什么:
我有一个 spring 引导应用程序,我在其中使用了 jib-maven-plugin。在 BitBucket 管道中,我正在执行以下命令:
mvn clean compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build -Dimage=eu.gcr.io/sdas-demo-dev/temp-service
之后使用来自 BitBucket 管道的 gcloud 命令将此 GCR 映像部署到云端 运行。此部署失败,错误为 'Could not load main class'.
但是如果我 运行 从我的计算机 git bash spring 启动应用程序代码,然后将其部署到云端 git bash =45=](通过 gcloud 命令或通过控制台或通过管道);部署成功。
我在 pom.xml 的 jib-maven-plugin 下使用了 'mainClass
' 标签。但它仍然无法找到或加载主 class.
任何人都可以帮助识别问题吗?这是 class路径问题还是环境问题?
问题已解决。
根本原因:
- 'No resources found to compile' - 我在构建日志中发现了这条消息。此消息提醒我应用程序包中存在错误。
- 我的系统是 运行 Windows 10,我的应用程序目录以 'Java.com.demo.sdas'(大写字母 J)开头。由于 Windows 区分大小写;它没有引起问题。
- BitBucket 管道 运行 在 Linux 服务器上并且区分大小写。因此无法找到以'Java.com.demo.sdas'. 开头的应用程序目录
解决方案:将目录重命名为 'java' 然后一切正常。