Java-11春季启动部署到Google Cloud错误:应用程序不满足[java11]的要求

Haa*_*rdG 5 java gradle spring-boot google-cloud-platform java-11

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

后端使用可以在localhost上正常运行./gradlew bootrun,但是当尝试将其部署到Google Cloud时,出现以下错误:

ERROR: (gcloud.app.deploy) Your application does not satisfy all of the requirements for a runtime of type [java11]. Please correct the errors and try again.

来自终端的Java11错误

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

使用以下设置在https://start.spring.io/创建一个新的Spring-Boot项目:

  • 项目:Gradle项目
  • 语言:Java
  • 春季靴:2.1.9
  • 项目元数据:选项:Java:11
  • 依赖项:Spring安全性,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
Run Code Online (Sandbox Code Playgroud)

双方app.yamlclient_secret.json存储在同一个地方build.gradle,并settings.gradle有。

然后,从终端(我们在VScode中使用了那个)开始运行gcloud app deploy。此命令首先询问我们是否要将后端部署到指定的google cloud项目,并列出它找到了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}"
    }
}

Run Code Online (Sandbox Code Playgroud)

所以我们的问题是 错误是什么意思?以及我们如何解决它?我们尝试了很多事情,例如同时编辑app.yamlbuild.gradle,但似乎无济于事。我们还很难理解错误发生的位置,因为后端可以在本地主机上正常运行。

我们感谢您的每一个回应!

最好的问候HaavardG:D

Haa*_*rdG 7

好像取出env: flexapp.yaml做的伎俩env: flex是某种不切换到java11支持。

我相信...