繁体   English   中英

Google 云 function 的本地部署失败,显示“javap -cp: Class not found”

[英]Local deploy of Google cloud function fails with "javap -cp: Class not found"

使用 STS 我的云 function 使用以下命令在本地运行良好:

mvn function:run -Drun.functionTarget=functions.Gcpfunc

但是,在进行本地源代码或预打包的 Lite JAR 部署时,GCP 上的构建日志在以下阶段显示错误:

"builder": Running "javap -classpath sts2gcphttpfunc-0.0.1-SNAPSHOT.jar functions.Gcpfunc" 
"builder": Error: class not found: functions.Gcpfunc. 

但是,如果我直接在 GCP 上创建一个 function 并部署它,上面的行会在日志中显示成功。

My System specs: Java 8, Maven 3.6.3, Windows 8.1 附件:pom.xml的截图,“Source”和“JAR”部署的构建日志错误

源部署命令:

gcloud functions deploy Gcpfunction3 --region=us-east1 --entry-point=functions.Gcpfunc --runtime=java11 --trigger-http --allow-unauthenticated

Lite JAR 部署命令:

gcloud functions deploy Gcpfunction3 --region=us-east1 --entry-point=functions.Gcpfunc --runtime=java11 --trigger-http --source=target/deployment --allow-unauthenticated

POM.xml 图片BuildLog-function 从 GCP 部署 BuildLog-function 从本地系统部署

当您查看来自本地测试的 google 文档语法的示例时:

mvn function:run -Drun.functionTarget=your.package.yourFunction

但是在文档 sytax 的gcloud deploy 命令示例中是:

gcloud functions deploy NAME --entry-point NAME --runtime RUNTIME TRIGGER [FLAGS...]

所以请注意gcloud命令中的--entry-point应该包含 class 名称,而在mvn function:run命令中它包含 package。我认为这是主要问题,所以验证这个值。 您可以在此处找到有关如何使用它的确切信息。

还有一个,老实说不确定是否重要,是您在 maven 中使用 java 8,而在 GCF 中您只能使用 java 11,实际上您在gcloud命令中使用它。

这已经解决。 必须从pom.xml中删除Spring-boot-maven-plugin ,这样 Class 文件就不会在Boot-inf文件夹中创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM