在我的spring Boot 应用程序上运行gcloud app deploy时,在Cloud Build中发生此错误。
gcloud app deploy
brccelvz1#
可能有一个或多个问题,因为你得到这个错误。为解决方案,请检查下面的事情-1.您的app.yaml应该有如下的入口点和运行时信息-runtime: java11entrypoint: java -Xmx64m -jar blahblah.jar1.你的pom.xml应该有appengine maven插件依赖”
app.yaml
runtime: java11
entrypoint: java -Xmx64m -jar blahblah.jar
pom.xml
<plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>appengine-maven-plugin</artifactId> <version>2.2.0</version> </plugin>
”1.不要修改jar文件,如果你想替换任何配置使用命令-jar uf blahblah.jar filename.yaml1.确保你在pom.xml中有一个像这样的jar包-<packaging>jar</packaging>
jar uf blahblah.jar filename.yaml
<packaging>jar</packaging>
4si2a6ki2#
我不小心删除了我的maven插件,所以不要删除它。
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
sauutmhj3#
我能够通过添加以下内容为我的AppEngine + Gradle项目修复它
jar { enabled = false archiveClassifier = '' }
到build.gradle文件。
8ftvxx2r4#
尝试在pom.xml中注解出来打包成war文件,例如:
<!-- <packaging>war</packaging> -->
它为我解决了这个问题。很好的最小+可行的例子在这里:https://codelabs.developers.google.com/codelabs/cloud-app-engine-springboot#0
klr1opcd5#
根本原因是打包的.jar文件在/META-INF/MANIFEST.MF中没有Main-Class条目。我的原始MANIFEST.MF文件看起来像这样:
.jar
/META-INF/MANIFEST.MF
Main-Class
MANIFEST.MF
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven 3.8.6 Built-By: me Build-Jdk: 19.0.1
对我来说,解决方案是添加maven-jar-plugin并手动配置mainClass。
maven-jar-plugin
mainClass
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <archive> <manifest> <mainClass>my.main.MainClass</mainClass> </manifest> </archive> </configuration> </plugin>
这导致以下MANIFEST.MF
Manifest-Version: 1.0 Created-By: Maven JAR Plugin 3.3.0 Build-Jdk-Spec: 19 Main-Class: my.main.MainClass
您也可以检查https://www.baeldung.com/spring-boot-main-class以获得其他选项,但您必须使用spring-boot-starter-parent作为父...
spring-boot-starter-parent
5条答案
按热度按时间brccelvz1#
可能有一个或多个问题,因为你得到这个错误。为解决方案,请检查下面的事情-
1.您的
app.yaml
应该有如下的入口点和运行时信息-runtime: java11
entrypoint: java -Xmx64m -jar blahblah.jar
1.你的
pom.xml
应该有appengine maven插件依赖”
”
1.不要修改jar文件,如果你想替换任何配置使用命令-
jar uf blahblah.jar filename.yaml
1.确保你在
pom.xml
中有一个像这样的jar包-<packaging>jar</packaging>
4si2a6ki2#
我不小心删除了我的maven插件,所以不要删除它。
sauutmhj3#
我能够通过添加以下内容为我的AppEngine + Gradle项目修复它
到build.gradle文件。
8ftvxx2r4#
尝试在pom.xml中注解出来打包成war文件,例如:
它为我解决了这个问题。很好的最小+可行的例子在这里:https://codelabs.developers.google.com/codelabs/cloud-app-engine-springboot#0
klr1opcd5#
根本原因是打包的
.jar
文件在/META-INF/MANIFEST.MF
中没有Main-Class
条目。我的原始
MANIFEST.MF
文件看起来像这样:对我来说,解决方案是添加
maven-jar-plugin
并手动配置mainClass
。这导致以下
MANIFEST.MF
您也可以检查https://www.baeldung.com/spring-boot-main-class以获得其他选项,但您必须使用
spring-boot-starter-parent
作为父...