Specifying dependencies

You can use any Java compatible libraries with the Java runtime on the App Engine standard environment. These instructions use Apache Maven to build, run, and deploy a sample app. 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.

Private dependencies with Artifact Registry

If you need to host private dependencies for your Java app, you can use an Artifact Registry Maven repository. Connecting to a Maven repository hosted on Artifact Registry requires the Artifact Registry Maven Tools plugin for your Maven or Gradle configuration.

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:

<dependencies>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <type>jar</type>
    <scope>provided</scope>
  </dependency>

</dependencies>
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.