您可以使用 Gradle,这种灵活的声明式构建自动化系统可用于自动构建、测试、发布和部署。本页介绍如何在标准环境中将 Gradle 用于 App Engine 项目。
准备工作
安装并配置以下前提条件:
设置并验证 Google Cloud 项目
您需要设置 Google Cloud 项目并安装 gcloud CLI:
使用 Google Cloud 控制台创建并设置您的 Google Cloud 项目:
- 选择或创建新的 Google Cloud 项目。
- 按照提示操作,以确保 App Engine 应用已存在且已启用结算功能:
- 如果您需要为项目创建 App Engine 应用,系统会提示您选择希望 App Engine 应用所在的区域。
- 按照提示创建新的结算账号或选择现有结算账号。
- 当您在项目中创建 App Engine 应用并启用结算功能后,信息中心会随即打开。
您无需安装 gcloud CLI,因为该插件会在需要时自动安装 SDK。
创建新的 Gradle 项目
您可以使用 shell 从头开始创建新的 Gradle 项目。或者,如要试用插件,您可以下载 hello world 项目,在本地运行并完成部署。
创建并输入新目录。
如需初始化一个新项目,请执行以下操作:
gradle init --type java-library; mkdir -p src/main/webapp/WEB-INF; rm src/main/java/Library.java src/test/java/LibraryTest.java
将以下代码添加到
build.gradle
文件中,以添加 App Engine Gradle 任务、Maven 代码库、App Engine Gradle 插件、依赖项和任务配置:您还需要使用文本编辑器或集成开发环境 (IDE) 将以下文件添加到您的项目:
如需查看 Java App Engine 项目的概览,请参阅配置文件。
下载 Hello World 应用
将 Hello World 示例应用代码库克隆到本地机器:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
转到包含示例代码的目录:
cd java-docs-samples/appengine-java8/helloworld
使用开发服务器测试应用
在本地运行时,如果要从项目访问 Google 资源,请运行以下命令,以设置应用默认凭据:
gcloud auth application-default login
切换到应用目录的根目录。
在开发阶段,您可以调用 Gradle 插件,在开发服务器上随时运行和测试您的应用:
gradle appengineRun
或者,您可以使用 Gradle 封装容器,这样无需安装就能运行 Gradle。
等待服务器启动。当您看到如下所示的消息时,表示服务器已启动且您的应用正在运行:
:compileJava :processResources NO-SOURCE :classes :war :explodeWar :assemble :appengineRun 2018-06-05 22:50:46.231:INFO::main: Logging initialized @321ms Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: Module instance default is running at http://localhost:8080/ Jun 06, 2018 2:50:49 AM com.google.appengine.tools.development.AbstractModule startup INFO: The admin console is running at http://localhost:8080/_ah/admin Jun 05, 2018 10:50:49 PM com.google.appengine.tools.development.DevAppServerImpl doStart INFO: Dev App Server is now running
访问
http://127.0.0.1:8080
查看应用运行。
在开发服务器上进行调试
要调试本地运行的应用,请设置 jvmFlags
属性以在底层 JVM 上启用调试,例如:
appengine {
run {
jvmFlags = ['-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005']
}
}
启用应用的热重载
“热重载”是指在不停止环境的情况下,在目前正在运行的应用中更新一个或多个类。要启用热重载,请执行以下操作:
您必须通知本地服务器扫描更改:
appengine { run { automaticRestart = true } }
当您的应用正在运行时,请运行
explodeWar
任务,将更改直接复制到已分解的应用中,并将更改传播到正在运行的应用中。
部署应用
如需部署应用,请运行以下命令:
gradle appengineDeploy
appengineDeploy
任务和所有其他 Gradle 任务具有您可以使用的关联属性。如需查看任务和属性的完整列表,请参阅 App Engine Gradle 任务和属性。
使用 Gradle 封装容器
Gradle 提供了一种无需安装,即可下载并运行所需的 Gradle 版本的机制:
Linux/macOS
./gradlew appengineRun
Windows
gradlew.bat appengineRun
如需详细了解 Gradle,请参阅 App Engine Gradle 任务和属性。
后续步骤
- 在 GitHub 上浏览插件代码并报告问题。
- 参阅 App Engine Gradle 任务和属性,了解如何为任务指定属性。