使用 Apache Maven 和 App Engine 插件

Apache Maven 是适用于 Java 的构建自动化工具。

App Engine 提供了一个 Maven 插件,您可以使用该插件构建应用并将其部署到 App Engine。插件不支持 Enterprise Application Archive (EAR) 项目。

开始前须知

  1. 运行以下命令以确定是否已安装 Maven 以及安装的版本:

    mvn -v
    

    如果安装了 Maven,则会显示以 Apache Maven 开头,后跟 3.5 等版本号的长字符串信息。

  2. 如果您未安装 Maven 3.5 或更高版本:

    1. 下载 Maven 3.5 或更高版本。
    2. 安装 Maven 3.5 或更高版本。
  3. 按照此处的步骤下载 gcloud CLI,创建 Google Cloud 项目,并初始化 App Engine 应用(如果您尚未这样做)。

  4. 安装 gcloud CLI app-engine-java 组件:

    gcloud components install app-engine-java
    

添加 App Engine Maven 插件

要使用 App Engine Maven 插件,请将以下代码行添加到项目的 pom.xml 文件中的 plugins 部分:

<plugins>
   <plugin>
     <groupId>com.google.cloud.tools</groupId>
     <artifactId>appengine-maven-plugin</artifactId>
     <version>2.7.0</version>
   </plugin>
   <plugin>
     <groupId>org.eclipse.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <version>9.3.7.v20160115</version>
   </plugin>
</plugins>
App Engine 插件包含 Jetty Maven 插件,您可以使用它快速测试应用,而无需创建 WAR 文件。

在本地使用 Jetty Maven 插件测试您的应用

在开发阶段,您可以通过调用 Jetty Maven 插件随时在开发服务器中运行和测试您的应用。

要在开发服务器中运行您的应用,请执行以下操作:

  1. 构建您的应用(如果您尚未构建):

    mvn package
    
  2. 将目录切换至您项目的顶级目录(例如,切换至 myapp),然后通过调用 Maven 运行应用:

    mvn jetty:run
    
  3. 等待服务器启动并使用浏览器访问 http://localhost:8080/ 以访问您的应用。

  4. Control+C 关闭应用和开发服务器。

构建和部署应用

将 App Engine Maven 插件添加到项目的 pom.xml 文件后,您可以使用以下命令构建您的应用:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

PROJECT_ID 替换为您的 Google Cloud 项目的 ID。 如果您的 pom.xml 文件已经指定了您的项目 ID,则您无需在运行的命令中添加 -Dapp.deploy.projectId 属性。

package 目标会构建和打包您的应用,而 appengine:deploy 目标会执行以下操作:

  1. 为您应用的新版本生成唯一的版本 ID。

  2. 将新版本部署到 App Engine。

  3. 将所有流量路由到新版本。

更改部署默认设置

您可以通过在 appengine:deploy 命令中传递参数来更改默认部署行为。例如,以下命令会将 pom.xml 文件中定义的服务部署到特定 Google Cloud 项目,为该服务分配一个自定义版本 ID,并关闭自动流量路由新版本:

mvn appengine:deploy -Dapp.deploy.projectId=PROJECT_ID -Dapp.deploy.version=VERSION_ID -Dapp.deploy.promote=False

您还可以使用 appengine:deploy 命令部署配置文件,例如 cron.yamldispatch.yamlindex.yaml

如需了解详情,请参阅 appengine:deploy 参考文档。

后续步骤