Apache Maven 是适用于 Java 的构建自动化工具。
App Engine 提供了一个 Maven 插件,您可以使用该插件构建应用并将其部署到 App Engine。插件不支持 Enterprise Application Archive (EAR) 项目。
开始前须知
运行以下命令以确定是否已安装 Maven 以及安装的版本:
mvn -v
如果安装了 Maven,则会显示以
Apache Maven
开头,后跟3.5
等版本号的长字符串信息。如果您未安装 Maven 3.5 或更高版本:
按照此处的步骤下载 gcloud CLI,创建 Google Cloud 项目,并初始化 App Engine 应用(如果您尚未这样做)。
安装 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>
在本地使用 Jetty Maven 插件测试您的应用
在开发阶段,您可以通过调用 Jetty Maven 插件随时在开发服务器中运行和测试您的应用。
要在开发服务器中运行您的应用,请执行以下操作:
构建您的应用(如果您尚未构建):
mvn package
将目录切换至您项目的顶级目录(例如,切换至
myapp
),然后通过调用 Maven 运行应用:mvn jetty:run
等待服务器启动并使用浏览器访问
http://localhost:8080/
以访问您的应用。按 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
目标会执行以下操作:
为您应用的新版本生成唯一的版本 ID。
将新版本部署到 App Engine。
将所有流量路由到新版本。
更改部署默认设置
您可以通过在 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.yaml
、dispatch.yaml
和 index.yaml
。
如需了解详情,请参阅 appengine:deploy
参考文档。
后续步骤
- 在 GitHub 上探索插件代码并报告问题。
- 请参阅 App Engine Maven 目标和参数,了解如何为任务指定参数。