Skip to content

Latest commit

 

History

History
344 lines (299 loc) · 45.6 KB

README.md

File metadata and controls

344 lines (299 loc) · 45.6 KB

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.12</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.12</version>
</dependency>
<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>s3</artifactId>
  <version>2.29.12</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.12</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!