Java-11 spring-boot 部署到谷歌云错误 : app does not satisfy requirements for [java11]

标签 java spring-boot gradle google-cloud-platform java-11

我正在开展一个小组项目,我们希望将后端部署到 Google Cloud。后端是使用 Java11、Gradle 和 Spring-Boot 创建的,并通过 GitHub 和 Travis 部署到 Google Cloud。

后端使用 ./gradlew bootrun 在本地主机上正常运行,但在尝试将其部署到 Google Cloud 时,我们收到以下错误:

错误:(gcloud.app.deploy) 您的应用程序不满足 [java11] 类型运行时的所有要求。请更正错误并重试。

Java11 error from the terminal

我们通过以下过程重新创建了此错误,从等式中删除了 GitHub 和 Travis:

https://start.spring.io/ 创建了一个新的 Spring-Boot 项目使用这些设置:

  • 项目:Gradle 项目
  • 语言:Java
  • Spring 启动:2.1.9
  • 项目元数据:选项:Java:11
  • 依赖项:Spring Security、Spring Web、GCP 支持

创建后,我们添加了文件 app.yamlclient_secret.json

client_secret.json 文件包含有关 gcloud 上具有大量权限的测试客户端的信息。

app.yaml:

runtime: java11
env: flex

service: default

handlers:
- url: /.*
  script: this field is required, but ignored

app.yamlclient_secret.json 都存储在同一位置 build.gradlesettings.gradle是。

然后,从终端(我们使用 VScode 中的终端)运行 gcloud app deploy。该命令首先询问我们是否要将后端部署到指定的谷歌云项目,列出它找到的 app.yaml 文件、源和目标。然后,当我们按 Y 继续时,出现错误。

这是 build.gradle 文件,它可能有用(?):

plugins {
    id 'org.springframework.boot' version '2.1.9.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

ext {
    set('springCloudVersion', "Greenwich.SR3")
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.cloud:spring-cloud-gcp-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

所以我们的问题是;这个错误是什么意思?我们该如何解决它?我们尝试了很多方法,例如编辑 app.yamlbuild.gradle,但似乎没有任何效果。我们还很难理解错误发生的位置,因为后端在本地主机上运行良好。

我们感谢每一个回复!

最诚挚的问候 HaavardG :D

最佳答案

似乎从 app.yaml 中删除 env: flex 就成功了,因为 Java11 不支持 env: flex

我相信...

关于Java-11 spring-boot 部署到谷歌云错误 : app does not satisfy requirements for [java11],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58505179/

相关文章:

java - 将日期映射到即时会增加一周

java - 如何在 Cognito 中使用 adminGetUserRequest 获取用户属性

java - spring可以在启动时创建一个新的模式(使用flyway),然后通过默认数据源连接到它吗?

java - 如何在kafka springboot中从一个主题读取多种类型的json

java - 自动生成代码并出现错误

Gradle:无法执行sql,找不到驱动程序

java - 将源添加到 .jar 以进行 gradle 构建

java - 使用其他框架的类不好吗?

java - 如何在java中测量JProgressBar的任务进度

Spring boot 应用程序不会熬夜