大于Google云平台中允许的最大大小[33554432]

时间:2018-12-08 14:17:27

标签: maven google-app-engine google-cloud-platform

在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文件的大小吗?

3 个答案:

答案 0 :(得分:3)

在部署中,每个文件Google App Engine的配额限制为32 MB(GO为64 MB)。

由于使用的是Java,因此SNAPSHOT.jar(40.8 MB)超出了32 MB的限制。

此限制适用于标准环境和弹性环境。

App Engine Quotas

答案 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,并确保确实部署了软件包。