App Engine gradle 插件可以使用 java 版本 17 吗?

Can app engine gradle plugin use java version 17?

提问人:helloi 提问时间:11/7/2023 更新时间:11/15/2023 访问量:57

问:

我正在使用 appengine 在本地运行一个 gradle 项目。我可以看到它仍然使用 java 8,即使我已经从我的机器中删除了 java 8。是否可以让它使用我本地安装的版本 17?如果您想知道,这是我的build.gradle文件

 buildscript {
  ...
  }

  dependencies {
    classpath 'com.google.cloud.tools:appengine-gradle-plugin:2.5.0'
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.4.1.3373"
  }
}
repositories {
    mavenCentral()
}

apply plugin: 'com.google.cloud.tools.appengine-appenginewebxml'
apply plugin: "org.sonarqube"
java {
    sourceCompatibility = '17'
    targetCompatibility = '17'
}

sourceSets {
    main {
        java.srcDirs = ['../']
    }
}

dependencies {
   ...
}

ext.getAppVersion = { ->
    return project.property('version')
}

appengine {
    tools {
        cloudSdkVersion = '449.0.0'
    }
    run {
        jvmFlags = ['-Dappengine.fullscan.seconds=5']
        projectId= 'beta-v2'
        services = '../war'
        port = 8080
        automaticRestart = true
    }
}

war {
    duplicatesStrategy = 'exclude'
}

explodeWar {
    with copySpec {
        from '../war/WEB-INF/appengine-web.xml'
        into 'WEB-INF'
    }
}

谢谢

Java gradle google-app-engine 插件 java-17

评论

0赞 Robert G 11/9/2023
您使用的是 App Engine Standard 还是 Flexible?您是否检查过此文档是否适用于您的应用程序?
0赞 helloi 11/13/2023
@RobertG 我使用的是应用引擎标准。这是否支持在本地运行 java 17?
0赞 Robert G 11/13/2023
是的,它支持 Java 17。请查看有关 Java 运行时环境的文档。

答:

0赞 Robert G 11/15/2023 #1

您可以根据有关 Java 运行时环境的文档在运行时环境中使用 Java 17。您应该注明版本:app.yamlruntime

runtime: java17

您还可以查看此文档,了解如何使用 Gradle 和 App Engine 插件

如果上述步骤不起作用,我建议通过此问题跟踪器或此 Github 问题链接提交问题,以便 Google Cloud 工程师可以查看此问题并为您提供进一步的帮助。

评论

0赞 helloi 11/16/2023
我的项目是一个基于appengine-web.xml的项目。我在那里将其更新为 java17。如何验证它是否使用 java17?
0赞 Robert G 11/16/2023
请查看此 Github 链接,其中 Java8 应用程序和 Java17 应用程序之间的唯一区别在于您需要定义 Java17 运行时并声明您需要 App Engine API 的文件。appengine-web.xml
0赞 helloi 11/16/2023
是的。我只想知道我的本地应用引擎服务器是否也在使用 java17。因为没有 <app-engine-apis>true</app-engine-apis> 在部署后导致问题,但在本地 appengine 服务器中工作正常。可能是什么原因?