Gradle 是一种侧重于灵活性和性能的开源构建自动化工具。App Engine 提供了一个 Gradle 插件,您可以使用该插件构建应用并将其部署到 App Engine。
此代码示例演示了如何配置 build.gradle
文件以添加 App Engine Gradle 任务、Maven 制品库、App Engine Gradle 插件和依赖项。
准备工作
请按照本指南中的步骤下载 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 项目,请参阅设置开发环境。
使用开发服务器测试应用
在本地运行时,如果要从项目访问 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 任务和属性,了解如何为任务指定属性。