App Engine Gradle 插件任务和属性

添加 App Engine 插件到您的项目后,您可以在 App Engine 标准环境中针对应用执行下列 App Engine 特定 Gradle 任务:

任务 说明
tasks 显示已安装任务的帮助信息。
appengineCloudSdkLogin 设置账号的全局 gcloud CLI 状态。
appengineDeploy 暂存应用并将其部署到 App Engine。
appengineDeployAll 暂存应用及其所有的有效 yaml 配置,同时将其部署到 App Engine。
appengineDeployCron 暂存 cron.yaml 配置文件并将其部署到 App Engine。
appengineDeployDispatch 暂存 dispatch.yaml 配置文件并将其部署到 App Engine。
appengineDeployDos 暂存 dos.yaml 配置文件并将其部署到 App Engine。
appengineDeployIndex 暂存 index.yaml 配置文件并将其部署到 App Engine。
appengineDeployQueue 暂存 queue.yaml 配置文件并将其部署到 App Engine。
appengineRun 运行 App Engine 开发服务器。服务器运行时,会持续检查以确定 appengine-web.xml 是否已更改。如果已更改,则服务器会重新加载应用。您无需因 appengine-web.xml 的更改而停止和重启应用。
appengineStage 生成用于部署的应用目录。
appengineStart 执行 App Engine 开发服务器的异步启动,然后返回到命令行。当此目标运行时,行为与 run 目标完全相同,但以下情况除外:Gradle 继续处理任务,并在服务器启动并运行后退出。
appengineStop 停止正在运行的 App Engine Web 开发服务器。
explodeWar 将 WAR 文件分离为构建目录。

要查看所有任务的列表,请使用以下命令:

gradle tasks

如需详细了解如何设置和使用 Gradle,请参阅使用 App Engine Gradle

任务属性

gradle.build 文件的内容是描述构建的一组规则。它是基于 Groovy 语言由网域特定的语言编写的,用于描述构建作业。

每个任务都具有可供您使用的如下相关属性。您可以使用配置闭包、任务和属性,在 gradle.build 文件中指定这些属性。

在以下示例中:

  • 插件的配置闭包是 appengine
  • 任务是 run
  • 属性 port 设置为 8080
appengine {  // App Engine tasks configuration
  run {      // local (dev_appserver) configuration (standard environments only)
    port = 8080                 // default
  }

  deploy {   // deploy configuration
    stopPreviousVersion = true  // default - stop the current version
    promote = true              // default - & make this the current version
  }
}

如果您只需指定少数几项属性,则可以将其排列为一行:

  appengine.run.port = 8888

有关每个任务的可用属性列表,请参阅以下部分。

appengineStage

task(stage)

生成用于部署的应用目录。appengineDeploy 任务使用 appengineStage

您可以使用以下属性:

属性说明
compileEncoding 编译 JSP 时使用的字符编码。仅适用于在 App Engine 标准环境中运行的应用。
deleteJsps 编译后删除 JSP 源文件。仅适用于在 App Engine 标准环境中运行的应用。
disableJarJsps 禁止添加通过 JSP 生成的类。仅适用于在 App Engine 标准环境中运行的应用。
disableUpdateCheck 不检查 gcloud CLI 更新。
enableJarClasses WEB-INF/classes content 压缩为 jar 文件。仅适用于在 App Engine 标准环境中运行的应用。
useMtimeFileWatcher 使用 mtime 轮询检测源代码更改。如果您使用分布式文件系统通过远程计算机修改代码,则此参数很有用。
enableJarSplitting 将大于 10 MB 的 JAR 文件拆分为多个较小的片段。仅适用于 App Engine 标准环境。
enableQuickstart 使用 Eclipse Jetty 快速启动模块处理 servlet 注释。仅适用于 App Engine 标准环境。
jarSplittingExcludes 从所有 JAR 文件中排除与英文逗号分隔的 SUFFIXES 列表匹配的文件。仅适用于在 App Engine 标准环境中运行的应用。
sourceDirectory 必需。已编译的 Web 应用文件或分离型 WAR 的位置,会用作要暂存的内容的源位置。仅适用于 App Engine 标准环境。默认值为 build/exploded-${gradle-module-name}
stagingDirectory 必需。要暂存应用的目录。默认值为 build/staged-app

appengineRun

task(run)

运行 App Engine 开发 Web 服务器。服务器运行时,会持续检查以确定 appengine-web.xml 是否已更改。如果已更改,则服务器会重新加载应用。也就是说,您无需因 appengine-web.xml 发生更改而停止和重启您的应用。

您可以使用以下属性,其中部分属性对应于本地开发服务器命令行标志

属性 说明
environment 要发送到本地开发服务器的环境变量的映射。 示例:[key1: "value1", key2: "value2"]
jvmFlags 启动应用实例时要传递至 java 命令的其他参数。可以多次指定此参数。示例: -Xmx1024m -Xms256m
host 应用服务应绑定的主机名。默认值为 localhost
port 应用服务应至少绑定的端口。默认值为 8080
serverVersion 要启动的服务器版本,选项包括“1”和“2-alpha”。默认值为“1”。
services 必需。表示一个目录的路径,其中包含 WEB-INF/web.xml 所在的目录。默认值为 build/exploded-app
startSuccessTimeout 等待开发应用服务器在后台启动(使用 appengineStart 时)的时间(以秒为单位)。

appengineDeploy

task(deploy)

暂存应用并将其部署到 App Engine。

属性 说明
appEngineDirectory .yaml 配置文件(cron、索引等)的位置,用于配置特定部署(appengineDeployCron 等)。对于标准应用,您的 .xml 配置文件在暂存到 .yaml 时会进行转换,并放置在 build/staged-app/WEB-INF/appengine-generated 中。
bucket 用于暂存与部署关联的文件的 Google Cloud Storage 存储桶。如果未指定此参数,则使用应用的默认存储桶。
imageUrl 使用特定的 Docker 映像进行部署。Docker 网址必须来自有效的 Google Container Registry 主机名之一。
projectId 用于此调用的 Google Cloud Platform 项目 ID。 您必须指定 projectId,或者您可以将 GCLOUD_CONFIG 设置为使用 gcloud 配置状态下的项目集。
promote 提升已部署的版本以接收所有流量。默认值为 True。
server 要连接的 App Engine 服务器。您通常不需要更改此值。
stopPreviousVersion 在部署接收所有流量的新版本时,停止以前运行的版本。
version 将由此部署创建或替换的应用版本。如果您未指定版本,系统会为您生成一个版本。

全局属性

属性说明
tools.cloudSdkHome 用于配置 gcloud CLI 位置的可选属性。如果未指定此属性,则该插件会自动下载 gcloud CLI。
tools.cloudSdkVersion 用于指定所需 gcloud CLI 版本的可选参数。