在GCP上部署spring-boot应用程序时,已显示以下错误。
错误:(gcloud.app.deploy)无法上传文件 [/home/info/Project1/target/appengine-staging/myproject-0.0.1-SNAPSHOT.jar], 大小为[42865605](大于允许的最大大小 [33554432])。请删除文件或将其添加到以下位置的skip_files条目中 您的应用程序.yaml文件,然后重试。
pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>myproject</name>
<description>aaaaaa</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<jjwt.version>0.9.0</jjwt.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>mysql-socket-factory</artifactId>
<version>1.0.9</version>
</dependency>
<!-- For Working with Json Web Tokens (JWT) -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- For Java 8 Date/Time Support -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<webResources>
<!-- in order to interpolate version from pom into appengine-web.xml -->
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- add appengine-maven-plugin -->
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<deploy.promote>true</deploy.promote>
<deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>
我已经删除了静态文件,但是jar文件仍然没有减少。 有人请让我知道如何减小jar文件的大小吗?
答案 0 :(得分:3)
在部署中,每个文件Google App Engine的配额限制为32 MB(GO
为64 MB)。
由于使用的是Java,因此SNAPSHOT.jar(40.8 MB)超出了32 MB的限制。
此限制适用于标准环境和弹性环境。
答案 1 :(得分:0)
也许您必须运行
mvn clean package
在部署之前,也许您必须更新gcloud SDK
答案 2 :(得分:0)
检查是否在应用的appengine-web.xml / app.yaml或pom.xml中启用了以下设置
<staging>
<enable-jar-classes>true</enable-jar-classes>
</staging>
它将尝试将所有类捆绑到一个jar中,这可能超出GCP施加的限制。 放宽此设置,可以让您的部署虽然现在有点慢。
或者,您可以选择通过Eclipse GUI进行部署:
项目浏览器>>右键单击根节点>>部署到App Engine标准。
如果启用了设置,这将确保允许捆绑jar,并确保确实部署了软件包。