Specifying dependencies

You can use any Java compatible libraries with the Java runtime on the App Engine flexible environment. These instructions use Apache Maven to build, run, and deploy a sample app using a supported Java runtime. For more information about using supported Java versions, see the Java runtime.

For details about installing Maven, see Using Apache Maven and the App Engine plugin.

Declare and manage dependencies

To manage dependencies using Maven, you need to specify the dependencies in the <dependencies> section inside the pom.xml file of your project.

To manage your project's dependency on Maven itself, you can use the Maven Wrapper. If you do not use the Maven Wrapper, App Engine defaults to using a recent version of Maven when running gcloud app deploy.

Specify the Java servlet library

Eclipse Jetty and Tomcat apps require the Java servlet library. Specify it in your pom.xml file's <dependencies> entry:

<dependency>
  <groupId>com.example.appengine</groupId>
  <artifactId>simple-jetty-main</artifactId>
  <version>1</version>
  <scope>provided</scope>
</dependency>
Note that frameworks such as SparkJava or Spring Boot won't require the servlet library.

Use the Cloud Client Libraries

Cloud Client Libraries for Java provide idiomatic access to Google Cloud services. To use a library, declare it as a dependency.

Typically, you only declare dependencies on the specific libraries that your app needs. For example, to use the Cloud Storage library:

<!--  Using libraries-bom to manage versions.
See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.28.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-storage</artifactId>
  </dependency>
</dependencies>

You can configure the Cloud Client Libraries for Java to handle authentication automatically.