Gradle 是一种侧重于灵活性和性能的开源构建自动化工具。App Engine 提供了一个 Gradle 插件,您可以使用该插件构建应用并将其部署到 App Engine。本指南中的代码示例使用 Gradle 8 版。
此代码示例演示了如何配置build.gradle
文件以添加 App Engine Gradle 任务、Maven 制品库、App Engine Gradle 插件和 Java 8 依赖项。对于 Java 11 版及更高版本,请参阅 Java 运行时,详细了解如何使用新版本。
准备工作
请按照本指南中的步骤下载 gcloud CLI,创建 Google Cloud 项目并初始化 App Engine 应用(如果您尚未执行这些操作)。
安装 gcloud CLI
app-engine-java
组件:gcloud components install app-engine-java
创建新的 Gradle 项目
您可以使用 shell 从头开始创建新的 Gradle 项目。或者,如果要试用此插件,您还可以下载 hello world 项目,在本地运行并完成部署。
如需创建新项目,请执行以下操作:
创建一个新目录,并导航到此目录。
如需初始化一个新项目,请执行以下操作:
运行
gradle init
:gradle init --type java-application
您需要回答以下问题:
- 输入目标 Java 版本(最小值:7,默认值:21):21
- 选择应用结构:1 表示单个应用项目
- 选择构建脚本 DSL:2(适用于 Groovy)
- 选择测试框架:1(适用于 JUnit 4)
- 使用新的 API 和行为生成构建:否
创建
WEB-INF
文件夹:mkdir -p app/src/main/webapp/WEB-INF
创建
appengine
文件夹:mkdir -p app/src/main/appengine
移除
gradle init
生成的存根文件:rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
将以下代码添加到
app/build.gradle
文件中,以添加 App Engine Gradle 任务、Maven 代码库、App Engine Gradle 插件、依赖项和任务配置:您还需要使用文本编辑器或集成开发环境 (IDE) 将以下文件添加到您的项目:
app/src/main/appengine/app.yaml
app/src/main/webapp/WEB-INF/web.xml
(除非应用使用 Servlet 3.1 注释)- app/src/main/docker/Dockerfile(自定义运行时的可选项)
- Java 类
- Java 测试类
如需大致了解 Java App Engine 项目,请参阅设置开发环境。
下载 Hello World 应用
将 Hello World 示例应用代码库克隆到本地机器:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
转到包含示例代码的目录:
cd java-docs-samples/flexible/java-8/helloworld
使用开发服务器测试应用
在本地运行时,如果要从项目访问 Google 资源,请运行以下命令,以设置应用默认凭据:
gcloud auth application-default login
切换到应用目录的根目录。
在开发阶段,您可以调用 Gradle 插件,在开发服务器上随时运行和测试您的应用:
gradle jettyRun
或者,您可以使用 Gradle 封装容器,这样无需安装就能运行 Gradle。
等待服务器启动。当您看到如下所示的消息时,表示服务器已启动且您的应用正在运行:
:prepareInplaceWebAppFolder :createInplaceWebAppFolder :compileJava :processResources UP-TO-DATE :classes :prepareInplaceWebAppClasses :prepareInplaceWebApp :jettyRun 17:40:05 INFO Jetty 9.2.15.v20160210 started and listening on port 8080 17:40:05 INFO runs at: 17:40:05 INFO http://localhost:8080/
访问
http://localhost:8080
查看应用运行情况。
如需详细了解 Gretty 插件,请参阅 Gretty 配置和 Gretty 任务。
部署应用
如需部署应用,请运行以下命令:
gradle appengineDeploy
appengineDeploy
任务和所有其他 Gradle 任务具有您可以使用的关联属性。如需查看任务和属性的完整列表,请参阅 App Engine Gradle 任务和属性。
使用 Gradle 封装容器
Gradle 提供了一种无需安装,即可下载并运行所需的 Gradle 版本的机制:
Linux/macOS
切换到示例代码目录。
运行 gradlew:
./gradlew jettyRun
Windows
切换到示例代码目录。
运行 gradlew:
./gradlew.bat jettyRun
如需详细了解 Gradle,请参阅 App Engine Gradle 任务和属性。
后续步骤
- 在 GitHub 上浏览插件代码并报告问题。
- 参阅 App Engine Gradle 任务和属性,了解如何为任务指定属性。