AWS SDK for Java v2 Bill of Materials providing centralized dependency management for 450+ AWS service modules and SDK components
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
The AWS SDK for Java v2 Bill of Materials (BOM) is a Maven dependency management artifact that provides centralized version coordination for the entire AWS SDK for Java v2 ecosystem. As a POM-only packaging type, it contains no executable code but instead defines dependency management entries for over 450+ AWS service modules, core libraries, HTTP clients, authentication components, and utility modules.
Maven dependencyManagement import:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.33.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Gradle BOM usage:
dependencies {
implementation platform('software.amazon.awssdk:bom:2.33.4')
}After importing the BOM, AWS SDK dependencies can be added without explicit version numbers:
<!-- Service clients without versions -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
</dependency>
<!-- Enhanced libraries -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
</dependency>
<!-- HTTP client selection -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
</dependency>The AWS SDK BOM organizes its 450+ managed dependencies into several key categories:
All components use a unified version (${awsjavasdk.version}) ensuring compatibility across the ecosystem.
Essential SDK building blocks including authentication, regions, protocols, and HTTP client interfaces. These components provide the foundation for all AWS service interactions.
<!-- Core infrastructure dependencies -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sdk-core</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>auth</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>regions</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>Client libraries for all AWS services including S3, EC2, DynamoDB, Lambda, and 400+ other services. Each service client provides a complete API for interacting with AWS services.
<!-- Popular service clients -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>ec2</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>Pluggable HTTP client implementations for making requests to AWS services. Choose the appropriate client based on your application's requirements.
<!-- HTTP client options -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>url-connection-client</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>High-level convenience libraries that provide simplified APIs for complex operations built on top of the core service clients.
<!-- Enhanced libraries -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb-enhanced</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>iam-policy-builder</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>Authentication, HTTP signing, and security components for AWS service requests including credential providers and signing algorithms.
<!-- Authentication components -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>http-auth</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>http-auth-aws</artifactId>
<version>${awsjavasdk.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>auth-crt</artifactId>
<version>${awsjavasdk.version}</version>
</dependency><!-- BOM artifact coordinates -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.33.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Version property used throughout BOM -->
<properties>
<awsjavasdk.version>2.33.4</awsjavasdk.version>
</properties>