/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 Maven 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.29.17</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

Then individual modules 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.29.17</version>
</dependency>
<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>s3</artifactId>
  <version>2.29.17</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.29.17</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 the following commands.

Linux:

./mvnw clean install

# Skip tests, checkstyles, findbugs, etc for quick build
./mvnw clean install -P quick

# Build a specific service module
./mvnw clean install -pl :s3 -P quick --am

Windows:

./mvnw.cmd clean install

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 Reference Guide:

Maintenance and Support for Java Versions

We maintain full support on Long-Term Support(LTS) releases: Java 8, Java 11, Java 17, and Java 21. Note that there may be individual features in newer releases that are not supported, because the SDK must be compatible with Java 8.

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
  • Articulate your feature request or upvote existing ones on our Issues page

Contributors ✨

Thanks goes to these wonderful people (emoji key):

sullis
sullis

πŸ’»
Austin Brooks
Austin Brooks

πŸ’»
Konrad `ktoso` Malawski
Konrad `ktoso` Malawski

πŸ’»
Andrew Hopkins
Andrew Hopkins

πŸ’»
Adam Thomas
Adam Thomas

πŸ’»
Steven Swor
Steven Swor

πŸ’»
Carey Burgess
Carey Burgess

πŸ’»
Anuraag Agrawal
Anuraag Agrawal

πŸ’»
jeffalder
jeffalder

πŸ’»
Boris
Boris

πŸ’»
Guillaume CorrΓ©
Guillaume CorrΓ©

πŸ’»
Henri Yandell
Henri Yandell

πŸ’»
Ryan Schmitt
Ryan Schmitt

πŸ’»
Somaya
Somaya

πŸ’»
Steven Aerts
Steven Aerts

πŸ’»
Steven Wong
Steven Wong

πŸ’»
Tomasz Elendt
Tomasz Elendt

πŸ’»
Will Erickson
Will Erickson

πŸ’»
Julien Hoarau
Julien Hoarau

πŸ’»
SEOKHYOENCHOI
SEOKHYOENCHOI

πŸ’»
adriannistor
adriannistor

πŸ’»
Xian Sun
Xian Sun

πŸ’»
Andreas Scheja
Andreas Scheja

πŸ’»
Anton Egorov
Anton Egorov

πŸ’»
roexber
roexber

πŸ’»
brharrington
brharrington

πŸ’»
Christopher Radek
Christopher Radek

πŸ’»
Foivos
Foivos

πŸ’»
Frank Wesemann
Frank Wesemann

πŸ’»
Gergely Varga
Gergely Varga

πŸ’»
Guillermo
Guillermo

πŸ’»
Henry Heikkinen
Henry Heikkinen

πŸ’»
Jochen Schalanda
Jochen Schalanda

πŸ’»
Joe Barnett
Joe Barnett

πŸ’»
Kazuhiro Sera
Kazuhiro Sera

πŸ’»
Krishna Chaithanya Ganta
Krishna Chaithanya Ganta

πŸ’»
Lee Packham
Lee Packham

πŸ’»
Matteo Carrara
Matteo Carrara

πŸ’»
Michael Scharp
Michael Scharp

πŸ’»
Miguel Jimenez
Miguel Jimenez

πŸ’»
Russell Bolles
Russell Bolles

πŸ’»
Russell Scheerer
Russell Scheerer

πŸ’»
Scott
Scott

πŸ’»
Shin'ya Ueoka
Shin'ya Ueoka

πŸ’»
sushilamazon
sushilamazon

πŸ’»
tomliu4uber
tomliu4uber

πŸ’»
Vladimir Orany
Vladimir Orany

πŸ’»
Xinyu Hu
Xinyu Hu

πŸ’»
Yosef Fertel
Yosef Fertel

πŸ’»
Denys Konakhevych
Denys Konakhevych

πŸ’»
Alex Weibel
Alex Weibel

πŸ’»
Ryan Carper
Ryan Carper

πŸ’»
Jonathan M. Henson
Jonathan M. Henson

πŸ’»
Debora N. Ito
Debora N. Ito

πŸ’»
Bret Ambrose
Bret Ambrose

πŸ’»
Anna-Karin Salander
Anna-Karin Salander

πŸ’»
John Viegas
John Viegas

πŸ’»
Dongie Agnir
Dongie Agnir

πŸ’»
Matthew Miller
Matthew Miller

πŸ’»
Benjamin Maizels
Benjamin Maizels

πŸ’»
Quan Zhou
Quan Zhou

πŸ’»
Zoe Wang
Zoe Wang

πŸ’»
Varun Nandi
Varun Nandi

πŸ’»
Andrew Shore
Andrew Shore

πŸ’»
Kyle Thomson
Kyle Thomson

πŸ’»
Sam Fink
Sam Fink

πŸ’»
Jonathan Bond
Jonathan Bond

πŸ’»
ajs139
ajs139

πŸ’»
Dewey Nguyen
Dewey Nguyen

πŸ’»
David Leen
David Leen

πŸ’»
Michael Li
Michael Li

πŸ’»
Bennett Lynch
Bennett Lynch

πŸ’»
Ikko Ashimine
Ikko Ashimine

πŸ“–
Jamie Liu
Jamie Liu

πŸ“–
guillepb10
guillepb10

πŸ’»
Lorenz Nickel
Lorenz Nickel

πŸ“–
Erin Yang
Erin Yang

πŸ’»
Roberto Tyley
Roberto Tyley

πŸ’»
Alvin See
Alvin See

πŸ’»
ron1
ron1

πŸ’»
Sai Kumar Reddy Chandupatla
Sai Kumar Reddy Chandupatla

πŸ’»
David Ho
David Ho

πŸ’»
Thomas Turrell-Croft
Thomas Turrell-Croft

πŸ’»
Steven Shan
Steven Shan

πŸ’»
Barry O'Neill
Barry O'Neill

πŸ’»
Andy Kiesler
Andy Kiesler

πŸ’»
Martin
Martin

πŸ’»
Paulo Lieuthier
Paulo Lieuthier

πŸ’»
SΓ©bastien Crocquesel
SΓ©bastien Crocquesel

πŸ’»
David Negrete
David Negrete

πŸ’»
Stephen Flavin
Stephen Flavin

πŸ’»
Olivier L Applin
Olivier L Applin

πŸ’»
Adrian Chlebosz
Adrian Chlebosz

πŸ’»
Chad Wilson
Chad Wilson

πŸ’»
Manish Dait
Manish Dait

πŸ“–
Dennis Kieselhorst
Dennis Kieselhorst

πŸ’»
Nilesh PS
Nilesh PS

πŸ’»
Steven Swartz
Steven Swartz

πŸ’»
Michael Dimchuk
Michael Dimchuk

πŸ’»
Nikita Sokolov
Nikita Sokolov

πŸ’»
Manuel Sugawara
Manuel Sugawara

πŸ’»
Anirudh
Anirudh

πŸ’»
Hayden Baker
Hayden Baker

πŸ’»
Jaykumar Gosar
Jaykumar Gosar

πŸ’»
Michael Graeb
Michael Graeb

πŸ’»
Michael Grundie
Michael Grundie

πŸ’»
Eckard MΓΌhlich
Eckard MΓΌhlich

πŸ’»
Tobias Soloschenko
Tobias Soloschenko

πŸ’»
Luis Madrigal
Luis Madrigal

πŸ“–
Kirill Chaykin
Kirill Chaykin

πŸ’»
prateek-vats
prateek-vats

πŸ’»

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