-
Notifications
You must be signed in to change notification settings - Fork 64
using maven
Apache Maven is a build automation tool for Java.
App Engine provides a Maven plugin that you can use to build and deploy your app to App Engine. The plugin does not support Enterprise Application Archive (EAR) projects.
Note: For information about other ways to build and deploy your app, see Testing and deploying your app.
-
Determine if Maven is installed and which version you have by running the following command:
mvn -vIf Maven is installed, a long string of information beginning with
Apache Mavenand followed by a version number such as3.9.1will display. -
If you don't have Maven 3.9.1 or newer installed:
Note: Linux users might need to download Maven instead of using
apt-get installto install Maven 3.9.1 or newer. -
If you haven't already done so, follow the steps here 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
To use the App Engine Maven
plugin,
add the following lines to the plugins section in your project's pom.xml
file:
appengine_maven_plugin
Note: If there is a newer version of the App Engine Maven plugin, you should upgrade to the latest version.
After you add the App Engine Maven plugin to your project's pom.xml file, you
can use the following command to build deploy your app:
mvn package appengine:deploy -Dapp.deploy.projectId=*PROJECT_ID*
Replace PROJECT_ID with the ID of your Google Cloud project. If your pom.xml
file already
specifies your
project ID , you don't need to include the -Dapp.deploy.projectId property
in the command you run.
The package goal builds and packages your app, and the
does the following:
-
Generates a unique version ID for the new version of your app.
-
Deploys the new version to App Engine.
-
Routes all traffic to the new version.
You can change the default deployment behavior by passing parameters in the
appengine:deploy command. For example, the following command deploys the
service defined in your pom.xml file to a specific Google Cloud project,
assigns a custom version ID to the service, and turns off automatic traffic
routing for the new version:
mvn appengine:deploy -Dapp.deploy.projectId=*PROJECT_ID* -Dapp.deploy.version=*VERSION_ID* -Dapp.deploy.promote=FalseYou can also use the appengine:deploy command to deploy configuration files,
such as cron.yaml, dispatch.yaml, and index.yaml.
For more information, see the appengine:deploy
- Review the JDK 21 App Engine Maven plugin sample.
- Explore the plugin code and report issues on GitHub.
- Learn how to specify parameters for tasks by referring to