首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java-11春季启动部署到google云错误:应用程序不满足[java11]的要求

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

Stack Overflow用户
提问于 2019-10-22 13:15:46
回答 2查看 1.6K关注 0票数 9

我正在做一个小组项目,我们想在这个项目中为Google部署一个后端。后端由Java11、Gradle和Spring创建,并通过GitHub与Travis部署到Google。

后端运行时,它应该在本地主机上使用./gradlew bootrun,但是当试图将它部署到Google时,我们会得到以下错误:

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.

我们使用以下过程重新创建了此错误,将GitHub和Travis从方程中删除:

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

  • 项目:分级项目
  • 语言: Java
  • 弹簧启动: 2.1.9
  • 项目元数据:选项: Java: 11
  • 依赖关系: Spring安全性、Spring、GCP支持

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

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

app.yaml:

代码语言:javascript
复制
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。这个命令首先询问我们是否要将后端部署到指定的google项目,并列出它找到了app.yaml文件、源和目标。然后,当我们按下Y继续时,就会出现错误。

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

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-07 22:41:33

env: flexapp.yaml中移除似乎起到了作用,因为env: flex在某种程度上不受Java11的支持。

我相信..。

票数 7
EN

Stack Overflow用户

发布于 2019-11-12 14:52:57

应用程序引擎标准和灵活(两者都支持)支持Java11。App标准与柔性的区别是标准有特定版本的Java,灵活支持任何版本的Java。

上面给出的错误是由于您正在放入运行时的app.yaml :java11 11。它必须如下所示:

app.yaml

代码语言:javascript
复制
runtime: custom
env: flex

service: default

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

您必须在此之前创建自定义运行时,以便正确部署它。这里您可以看到在App灵活环境中创建自定义运行时的正式文档。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58505179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档