Gradle is an open-source build automation tool focused on flexibility and performance. App Engine provides a Gradle plugin that you can use to build and deploy your app to App Engine.
Before you begin
- If you haven't already done so, follow the steps in this guide to download the gcloud CLI, create your Google Cloud project, and initialize your App Engine app. 
- Install the gcloud CLI - app-engine-javacomponent:- gcloud components install app-engine-java
Create a new Gradle project
You can create a new Gradle project from scratch using the shell. Alternatively, to try out the plugin, you can download, run locally, and deploy the hello world project.
To create a new project:
- Create a new directory and navigate to it. 
- To initialize a new project: - Run - gradle init:- gradle init --type java-application- You'll be asked to answer questions: - Enter target Java version (min: 7, default: 21): 21
- Select application structure: 1 for Single application project
- Select build script DSL: 2 (for Groovy)
- Select test framework: 1 (for JUnit 4)
- Generate build using new APIs and behavior: no
 
- Create the - WEB-INFfolder:- mkdir -p app/src/main/webapp/WEB-INF
- Create the - appenginefolder:- mkdir -p app/src/main/appengine
 
- Remove the stub files generated by - gradle init:- rm ./app/src/main/java/org/example/App.java ./app/src/test/java/org/example/AppTest.java
- Add the following to your - app/build.gradlefile to add App Engine Gradle tasks, Maven repositories, the App Engine Gradle plugin, dependencies, and task configuration:
- You also need to add the following files to your project, using a text editor or integrated development environment (IDE): 
- app/src/main/docker/Dockerfile (optional for custom runtimes)
- Java classes
- Java testing classes
 
See Set up your development environment for an overview of a Java App Engine project.
Testing your application with the development server
- To access Google resources from your project when running locally, set the application default credentials by running: - gcloud auth application-default login
- Change to the root of your application directory. 
- During the development phase, you can run and test your application at any time in the development server by invoking Gradle: - gradle jettyRun- Alternatively, you can run Gradle without installing it by using the Gradle wrapper. 
- Wait for the server to start. The server is started with your application running when you see a message similar to this: - :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/ 
- See your app running at - http://localhost:8080.
To learn more about the Gretty plugin, see Gretty Configuration and Gretty tasks.
Deploy your application
To deploy your application:
gradle appengineDeploy
The appengineDeploy task and all other Gradle tasks have associated properties
that you can use. For a complete list of tasks and properties, refer to
  App Engine Gradle Tasks and Properties.
Use the Gradle wrapper
Gradle provides a mechanism to download and run the required version of Gradle without installation:
Linux/macOS
- Change to the sample code directory. 
- Run gradlew: - ./gradlew jettyRun
Windows
- Change to the sample code directory. 
- Run gradlew: - ./gradlew.bat jettyRun
Additional information on Gradle can be found in App Engine Gradle Tasks and Properties.
What's next
- Explore the plugin code and report issues on GitHub.
- Learn how to specify properties for tasks by referring to App Engine Gradle Tasks and Properties.