App Engine Maven 插件目标和参数

将 App Engine Maven 插件添加到项目后,您可以使用以下 App Engine 特定的 Maven 目标:

目标 说明
appengine:deploy 暂存应用并将其部署到 App Engine。
appengine:deployCron cron.yaml 配置文件部署到 App Engine。
appengine:deployDispatch dispatch.yaml 配置文件部署到 App Engine。
appengine:deployDos dos.yaml 配置文件部署到 App Engine。
appengine:deployIndex index.yaml 配置文件部署到 App Engine。
appengine:deployQueue queue.yaml 配置文件部署到 App Engine。
appengine:help 显示 App Engine Maven 插件的帮助信息。
appengine:stage 生成用于部署的应用构建目录。

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

使用参数

每个目标都包含您可以在 pom.xml 中指定的相关参数。例如:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.2.0</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkPath>/usr/foo/path/to/cloudsdk</cloudSdkPath>
     </configuration>
  </plugin>
</plugins>

您还可以按照 -D[USER_PROPERTY]=[PARAMETER_VALUE] 模式在命令行中定义配置参数。

例如,要指定用于暂存应用的目录,请运行以下命令:

mvn appengine:stage -Dapp.stage.stagingDirectory=[YOUR_STAGING_DIRECTORY]

如需了解每个目标可用的参数列表,请参阅以下部分。

appengine:deploy

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

您可以使用以下参数,其中一些参数等效于 gcloud app deploy 命令行标志gcloud app services 命令行标志

参数值 说明 用户属性
appEngineDirectory 包含 app.yaml 和其他受支持的 App Engine 配置文件的目录。默认为 ${basedir}/src/main/appengine app.stage.appEngineDirectory
artifact 要部署的 JAR 或 WAR 归档的位置。默认为 ${project.build.directory}/${project.build.finalName}.${project.packaging} app.stage.artifact
bucket 用于暂存与部署关联的文件的 Cloud Storage 存储分区。如果未指定此参数,将使用应用的默认存储分区。 app.deploy.bucket
cloudSdkPath 用于配置 Cloud SDK 位置的可选参数。默认值为从 PATH 或标准安装位置自动发现。 cloudSdkPath
deployables 要部署的服务或配置的 YAML 文件。 默认为暂存目录中的 app.yaml 文件。 如果找不到此文件,则尝试在暂存目录中自动生成必要的配置文件(例如 app.yaml)。 app.deploy.deployables
dockerDirectory 包含 Dockerfile 和其他 Docker 资源的目录。 默认为 ${basedir}/src/main/docker/ app.stage.dockerDirectory
imageUrl 使用特定的 Docker 映像进行部署。ImageUrl 必须是有效的 Container Registry 名称,例如 gcr.io/foo,其中 foo 是映像的名称。 app.deploy.imageUrl
projectId 用于此调用的 Google Cloud 项目名称。默认值是初始化 gcloud 时选择的当前项目。 app.deploy.projectId
promote 提升已部署的版本以接收所有流量。默认为 True app.deploy.promote
server 要连接的 App Engine 服务器。通常,您无需更改此值。 app.deploy.server
stagingDirectory 必填。要暂存应用的目录。默认为 ${project.build.directory}/appengine-staging app.stage.stagingDirectory
stopPreviousVersion 在部署接收所有流量的新版本时,停止以前运行的版本。 app.deploy.stopPreviousVersion
version 将由此部署创建或替换的应用版本。如果您未指定版本,系统会为您生成一个版本。 app.deploy.version

appengine:help

显示 App Engine Maven 插件的帮助信息。要显示参数详细信息,请调用以下命令:

mvn appengine:help -Ddetail=true -Dgoal=[GOAL_NAME]

您可以使用以下参数:

参数 说明 用户属性
detail 如果为 true,则显示每个目标的所有可设置属性。默认为 False detail
goal 要显示其帮助信息的目标的名称。如果未指定,将显示所有目标。 goal
indentSize 每个缩进级别的空格数。应为正数。 默认值为 2 indentSize
lineLength 显示行的长度上限。应为正数。 默认值为 80 lineLength

appengine:stage

生成用于部署的应用构建目录。

您可以使用以下参数:

参数 说明 用户属性
appEngineDirectory 包含 app.yaml 和其他受支持的 App Engine 配置文件的目录。默认为 ${basedir}/src/main/appengine app.stage.appEngineDirectory
artifact 要部署的 JAR 或 WAR 归档的位置。默认值为 ${project.build.directory}/${project.build.finalName}.${project.packaging} app.stage.artifact
cloudSdkPath 用于配置 Cloud SDK 位置的可选参数。 cloudSdkPath
dockerDirectory 包含 Dockerfile 和其他 Docker 资源的目录。 默认为 ${basedir}/src/main/docker/${basedir}/src/main/docker/ app.stage.dockerDirectory
stagingDirectory 必需。要暂存应用的目录。默认为 ${project.build.directory}/appengine-staging app.stage.stagingDirectory