/aws-sdk-java-v2

The official AWS SDK for Java - Version 2

Primary LanguageJavaApache License 2.0Apache-2.0

AWS SDK for Java 2.0

Build Status Build Status Maven Gitter codecov

All Contributors

The AWS SDK for Java 2.0 is a rewrite of 1.0 with some great new features. As with version 1.0, it enables you to easily work with Amazon Web Services but also includes features like non-blocking IO and pluggable HTTP implementation to further customize your applications. You can get started in minutes using Maven or any build system that supports MavenCentral as an artifact source.

Getting Started

Sign up for AWS

Before you begin, you need an AWS account. Please see the Sign Up for AWS section of the developer guide for information about how to create an AWS account and retrieve your AWS credentials.

Minimum requirements

To run the SDK you will need Java 1.8+. For more information about the requirements and optimum settings for the SDK, please see the Installing a Java Development Environment section of the developer guide.

Using the SDK

The recommended way to use the AWS SDK for Java in your project is to consume it from Maven Central.

Importing the BOM

To automatically manage module versions (currently all modules have the same version, but this may not always be the case) we recommend you use the Bill of Materials import as follows:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>bom</artifactId>
      <version>2.16.43</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Then individual models may omit the version from their dependency statement:

<dependencies>
  <dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>ec2</artifactId>
  </dependency>
  <dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>s3</artifactId>
  </dependency>
  <dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>dynamodb</artifactId>
  </dependency>
</dependencies>

Individual Services

Alternatively you can add dependencies for the specific services you use only:

<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>ec2</artifactId>
  <version>2.16.43</version>
</dependency>
<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>s3</artifactId>
  <version>2.16.43</version>
</dependency>

Whole SDK

You can import the whole SDK into your project (includes ALL services). Please note that it is recommended to only import the modules you need.

<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>aws-sdk-java</artifactId>
  <version>2.16.43</version>
</dependency>

See the Set up the AWS SDK for Java section of the developer guide for more usage information.

New Features for 2.0

  • Provides a way to plug in your own HTTP implementation.

  • Provides first class support for non-blocking IO in Async clients.

Building From Source

Once you check out the code from GitHub, you can build it using Maven.

mvn clean install

# Skip tests, checkstyles, findbugs, etc for quick build
mvn clean install -P quick

# Build a specific service module
mvn clean install -pl :s3 -P quick --am

Sample Code

You can find sample code for v2 in the following places:

Maintenance and Support for SDK Major Versions

For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide:

Giving Feedback

We need your help in making this SDK great. Please participate in the community and contribute to this effort by submitting issues, participating in discussion forums and submitting pull requests through the following channels:

  • Submit issues - this is the preferred channel to interact with our team
  • Come join the AWS Java community chat on Gitter
  • Articulate your feature request or upvote existing ones on our Issues page
  • Send feedback directly to the team at aws-java-sdk-v2-feedback@amazon.com

Contributors ✨

Thanks goes to these wonderful people (emoji key):


sullis

πŸ’»

Austin Brooks

πŸ’»

Konrad `ktoso` Malawski

πŸ’»

Andrew Hopkins

πŸ’»

Adam Thomas

πŸ’»

Steven Swor

πŸ’»

Carey Burgess

πŸ’»

Anuraag Agrawal

πŸ’»

jeffalder

πŸ’»

Boris

πŸ’»

Guillaume CorrΓ©

πŸ’»

Henri Yandell

πŸ’»

Ryan Schmitt

πŸ’»

Somaya

πŸ’»

Steven Aerts

πŸ’»

Steven Wong

πŸ’»

Tomasz Elendt

πŸ’»

Will Erickson

πŸ’»

Julien Hoarau

πŸ’»

SEOKHYOENCHOI

πŸ’»

adriannistor

πŸ’»

Xian Sun

πŸ’»

Andreas Scheja

πŸ’»

Anton Egorov

πŸ’»

roexber

πŸ’»

brharrington

πŸ’»

Christopher Radek

πŸ’»

Foivos

πŸ’»

Frank Wesemann

πŸ’»

Gergely Varga

πŸ’»

Guillermo

πŸ’»

Henry Heikkinen

πŸ’»

Jochen Schalanda

πŸ’»

Joe Barnett

πŸ’»

Kazuhiro Sera

πŸ’»

Krishna Chaithanya Ganta

πŸ’»

Lee Packham

πŸ’»

Matteo Carrara

πŸ’»

Michael Scharp

πŸ’»

Miguel Jimenez

πŸ’»

Russell Bolles

πŸ’»

Russell Scheerer

πŸ’»

Scott

πŸ’»

Shin'ya Ueoka

πŸ’»

sushilamazon

πŸ’»

tomliu4uber

πŸ’»

Vladimir Orany

πŸ’»

Xinyu Hu

πŸ’»

Yosef Fertel

πŸ’»

Denys Konakhevych

πŸ’»

Alex Weibel

πŸ’»

Ryan Carper

πŸ’»

Jonathan M. Henson

πŸ’»

Debora N. Ito

πŸ’»

Bret Ambrose

πŸ’»

Anna-Karin Salander

πŸ’»

John Viegas

πŸ’»

Dongie Agnir

πŸ’»

Matthew Miller

πŸ’»

Benjamin Maizels

πŸ’»

Quan Zhou

πŸ’»

Zoe Wang

πŸ’»

Varun Nandi

πŸ’»

Andrew Shore

πŸ’»

Kyle Thomson

πŸ’»

Sam Fink

πŸ’»

Jonathan Bond

πŸ’»

ajs139

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!