我正在做一个小组项目,我们想在这个项目中为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项目:
创建之后,我们添加了文件app.yaml和client_secret.json。
client_secret.json文件包含关于具有大量权限的gcloud测试客户端的信息。
app.yaml:
runtime: java11
env: flex
service: default
handlers:
- url: /.*
script: this field is required, but ignoredapp.yaml和client_secret.json都存储在build.gradle和settings.gradle的同一个位置。
然后,从终端(我们在VScode中使用的终端)运行gcloud app deploy。这个命令首先询问我们是否要将后端部署到指定的google项目,并列出它找到了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.yaml和build.gradle,但是似乎没有什么效果。我们还很难理解错误发生在哪里,因为后端在本地主机上运行良好。
我们感谢你的每一个回应!
向HaavardG问好:D
发布于 2019-11-07 22:41:33
将env: flex从app.yaml中移除似乎起到了作用,因为env: flex在某种程度上不受Java11的支持。
我相信..。
发布于 2019-11-12 14:52:57
应用程序引擎标准和灵活(两者都支持)支持Java11。App标准与柔性的区别是标准有特定版本的Java,灵活支持任何版本的Java。
上面给出的错误是由于您正在放入运行时的app.yaml :java11 11。它必须如下所示:
app.yaml
runtime: custom
env: flex
service: default
handlers:
- url: /.*
script: this field is required, but ignored您必须在此之前创建自定义运行时,以便正确部署它。这里您可以看到在App灵活环境中创建自定义运行时的正式文档。
https://stackoverflow.com/questions/58505179
复制相似问题