在您的项目中添加基于 gcloud CLI 的 App Engine Maven 插件后,您就可以使用以下 App Engine 特定的 Maven 目标了:
| 目标 | 说明 | 
|---|---|
appengine:cloudSdkLogin | 
    设置账号的全局 gcloud CLI 状态。 | 
appengine:deploy | 
    暂存应用并将其部署到 App Engine。 | 
appengine:deployAll | 
    暂存应用及其所有的有效 yaml 配置,同时将其部署到 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:run | 
    
      运行 App Engine 开发服务器。服务器运行时,会持续检查以确定 appengine-web.xml 是否已更改。如果已更改,则服务器会重新加载应用。您无需因 appengine-web.xml 的更改而停止和重启应用。 旧版捆绑服务支持此目标。 | 
  
appengine:stage | 
    生成用于部署的应用目录。 | 
appengine:start | 
    
      以异步方式启动 App Engine 开发服务器,然后返回命令行。 当此目标运行时,行为与 run 目标完全相同,但以下情况除外:Maven 继续处理目标,并在服务器启动并运行后退出。 旧版捆绑服务支持此目标。 | 
  
appengine:stop | 
    停止正在运行的 App Engine Web 开发服务器。 旧版捆绑服务支持此目标。 | 
如需详细了解如何设置和使用 Maven,请参阅使用 Maven。
使用参数
每个目标都包含您可以在 pom.xml 中指定的相关参数。例如:
<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.8.1</version>
     <configuration>
       <deploy.stopPreviousVersion>true</deploy.stopPreviousVersion>
       <cloudSdkHome>/usr/foo/path/to/cloudsdk</cloudSdkHome>
     </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 | 
      用于配置 Google Cloud CLI 位置的可选参数。默认是从 PATH 或标准安装位置自动发现。 | cloudSdkPath | 
    
deployables | 
      要部署的服务或配置的 YAML 文件。默认为暂存目录中的 app.yaml 文件。
          如果找不到此文件,则尝试在暂存目录中自动生成必要的配置文件(例如 app.yaml)。 | 
      app.deploy.deployables | 
    
dockerDirectory | 
      包含 Dockerfile 和其他 Docker 资源的目录。默认值为 ${basedir}/src/main/docker/。 | 
      app.stage.dockerDirectory | 
    
imageUrl | 
      使用特定的 Docker 映像进行部署。ImageUrl 必须是有效的 Artifact Registry 名称,例如 docker.pkg.dev/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:run
运行 App Engine 开发 Web 服务器。服务器运行时,会持续检查以确定 appengine-web.xml 是否已更改。如果已更改,则服务器会重新加载应用。也就是说,您无需因 appengine-web.xml 发生更改而停止和重启您的应用。
您可以使用以下参数,其中一些参数对应于本地开发服务器命令行标志:
| 属性 | 说明 | 插件配置 | 命令行配置 | 
|---|---|---|---|
automaticRestart | 
    
      更改 Web 应用文件(资源或类文件)时自动重启实例。如需配置 Maven 以将已编译的类文件放置在 Web 应用的正确目录中,您必须更改 Maven outputDirectory 设置:<build> <outputDirectory> target/${project.artifactId}-${project.version}/WEB-INF/classes </outputDirectory> ... <plugins> ...  | 
    devserver.automaticRestart | 
    app.devserver.automaticRestart | 
  
environment | 
    
      要发送到本地开发服务器的环境变量的映射。
      示例:<environment> <key1>value1</key1> <key2>value2</key2> </environment>  | 
    devserver.environment | 
    app.devserver.environment | 
  
jvmFlags | 
    
      启动应用实例时要传递至 java 命令的其他参数。可以多次指定此参数。示例:<jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags>  | 
    devserver.jvmFlags | 
    app.devserver.jvmFlags | 
  
host | 
    
      应用服务应绑定的主机名。默认值为 localhost。
     | 
    devserver.host | 
    app.devserver.host | 
  
port | 
    
      应用服务应至少绑定的端口。默认值为 8080。
     | 
    devserver.port | 
    app.devserver.port | 
  
serverVersion | 
    要启动的服务器版本,选项包括“1”和“2-alpha”。默认值为“1”。 | devserver.serverVersion | 
    app.devserver.serverVersion | 
  
services | 
    
      必需。表示一个目录的路径,其中包含 WEB-INF/web.xml 所在的目录。默认值为 build/exploded-app。 | 
    devserver.services | 
    app.devserver.services | 
  
appengine:stage
生成用于部署的应用 build 目录。
您可以使用以下参数:
| 参数 | 说明 | 用户属性 | 
|---|---|---|
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 | 
    用于配置 gcloud CLI 位置的可选参数。 | cloudSdkPath | 
  
dockerDirectory | 
    包含 Dockerfile 和其他 Docker 资源的目录。默认值为 ${basedir}/src/main/docker/${basedir}/src/main/docker/。 | 
    app.stage.dockerDirectory | 
  
stagingDirectory | 
    必需。要暂存应用的目录。默认为 ${project.build.directory}/appengine-staging。 | 
    app.stage.stagingDirectory | 
  
appengine:start
以异步方式开始运行 App Engine 开发 Web 服务器,然后返回命令行。当此目标运行时,行为与 run 目标完全相同,但以下情况除外:Maven 继续处理目标,并在服务器启动并运行后退出。
您可以使用以下参数:
| 属性 | 说明 | 插件配置 | 命令行配置 | 
|---|---|---|---|
environment | 
    
      要发送到本地开发服务器的环境变量的映射。
      示例:<environment> <key1>value1</key1> <key2>value2</key2> </environment>  | 
    devserver.environment | 
    app.devserver.environment | 
  
jvmFlags | 
    
      启动应用实例时要传递至 java 命令的其他参数。可以多次指定此参数。示例:<jvmFlags> <jvmFlag>-Xmx1024m</jvmFlag> <jvmFlag>-Xms256m</jvmFlag> </jvmFlags>  | 
    devserver.jvmFlags | 
    app.devserver.jvmFlags | 
  
host | 
    
      应用服务应绑定的主机名。默认值为 localhost。
     | 
    devserver.host | 
    app.devserver.host | 
  
port | 
    
      应用服务应至少绑定的端口。默认值为 8080。
     | 
    devserver.port | 
    app.devserver.port | 
  
serverVersion | 
    要启动的服务器版本,选项包括“1”和“2-alpha”。默认值为“1”。 | devserver.serverVersion | 
    app.devserver.serverVersion | 
  
services | 
    
      必需。表示一个目录的路径,其中包含 WEB-INF/web.xml 所在的目录。默认值为 build/exploded-app。 | 
    devserver.services | 
    app.devserver.services | 
  
startSuccessTimeout | 
    等待开发应用服务器在后台启动(使用 appengineStart 时)的时间(以秒为单位)。 | devserver.startSuccessTimeout | 
    app.devserver.startSuccessTimeout | 
  
appengine:stop
停止正在运行的 App Engine 网络开发服务器。
您可以使用以下参数:
| 参数 | 说明 | 插件配置 | 命令行配置 | 
|---|---|---|---|
host | 
    管理服务器应绑定的主机名。默认为 localhost。 | 
    devserver.adminHost | 
    app.devserver.adminHost | 
  
port | 
    管理服务器应绑定的端口。默认值为 8000。 | 
    devserver.adminPort | 
    app.devserver.adminPort | 
  
cloudSdkHome | 
    用于配置 gcloud CLI 位置的可选参数。如果未指定此属性,则该插件会自动下载 gcloud CLI。 | cloudSdkHome | 
    cloudSdkHome |