0
# AWS SDK for Java v2 BOM
1
2
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.
3
4
## Package Information
5
6
- **Package Name**: bom
7
- **Package Type**: maven
8
- **Language**: Java
9
- **GroupId**: software.amazon.awssdk
10
- **Installation**: Import in Maven dependencyManagement section
11
12
## Core Imports
13
14
**Maven dependencyManagement import:**
15
16
```xml
17
<dependencyManagement>
18
<dependencies>
19
<dependency>
20
<groupId>software.amazon.awssdk</groupId>
21
<artifactId>bom</artifactId>
22
<version>2.33.4</version>
23
<type>pom</type>
24
<scope>import</scope>
25
</dependency>
26
</dependencies>
27
</dependencyManagement>
28
```
29
30
**Gradle BOM usage:**
31
32
```gradle
33
dependencies {
34
implementation platform('software.amazon.awssdk:bom:2.33.4')
35
}
36
```
37
38
## Basic Usage
39
40
After importing the BOM, AWS SDK dependencies can be added without explicit version numbers:
41
42
```xml
43
<!-- Service clients without versions -->
44
<dependency>
45
<groupId>software.amazon.awssdk</groupId>
46
<artifactId>s3</artifactId>
47
</dependency>
48
<dependency>
49
<groupId>software.amazon.awssdk</groupId>
50
<artifactId>dynamodb</artifactId>
51
</dependency>
52
<dependency>
53
<groupId>software.amazon.awssdk</groupId>
54
<artifactId>lambda</artifactId>
55
</dependency>
56
57
<!-- Enhanced libraries -->
58
<dependency>
59
<groupId>software.amazon.awssdk</groupId>
60
<artifactId>s3-transfer-manager</artifactId>
61
</dependency>
62
63
<!-- HTTP client selection -->
64
<dependency>
65
<groupId>software.amazon.awssdk</groupId>
66
<artifactId>netty-nio-client</artifactId>
67
</dependency>
68
```
69
70
## Architecture
71
72
The AWS SDK BOM organizes its 450+ managed dependencies into several key categories:
73
74
- **Core Infrastructure**: Essential SDK building blocks (auth, regions, protocols, HTTP clients)
75
- **Service Clients**: Individual AWS service client libraries (S3, EC2, DynamoDB, Lambda, etc.)
76
- **Enhanced Libraries**: High-level convenience libraries built on service clients
77
- **HTTP Implementations**: Pluggable HTTP client implementations (Apache, Netty, URL Connection)
78
- **Authentication**: AWS authentication and signing components
79
- **Observability**: Metrics publishing and monitoring components
80
81
All components use a unified version (`${awsjavasdk.version}`) ensuring compatibility across the ecosystem.
82
83
## Capabilities
84
85
### Core SDK Infrastructure
86
87
Essential SDK building blocks including authentication, regions, protocols, and HTTP client interfaces. These components provide the foundation for all AWS service interactions.
88
89
```xml { .api }
90
<!-- Core infrastructure dependencies -->
91
<dependency>
92
<groupId>software.amazon.awssdk</groupId>
93
<artifactId>sdk-core</artifactId>
94
<version>${awsjavasdk.version}</version>
95
</dependency>
96
<dependency>
97
<groupId>software.amazon.awssdk</groupId>
98
<artifactId>auth</artifactId>
99
<version>${awsjavasdk.version}</version>
100
</dependency>
101
<dependency>
102
<groupId>software.amazon.awssdk</groupId>
103
<artifactId>regions</artifactId>
104
<version>${awsjavasdk.version}</version>
105
</dependency>
106
```
107
108
[Core Infrastructure](./core-infrastructure.md)
109
110
### AWS Service Clients
111
112
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.
113
114
```xml { .api }
115
<!-- Popular service clients -->
116
<dependency>
117
<groupId>software.amazon.awssdk</groupId>
118
<artifactId>s3</artifactId>
119
<version>${awsjavasdk.version}</version>
120
</dependency>
121
<dependency>
122
<groupId>software.amazon.awssdk</groupId>
123
<artifactId>ec2</artifactId>
124
<version>${awsjavasdk.version}</version>
125
</dependency>
126
<dependency>
127
<groupId>software.amazon.awssdk</groupId>
128
<artifactId>dynamodb</artifactId>
129
<version>${awsjavasdk.version}</version>
130
</dependency>
131
```
132
133
[AWS Service Clients](./service-clients.md)
134
135
### HTTP Client Implementations
136
137
Pluggable HTTP client implementations for making requests to AWS services. Choose the appropriate client based on your application's requirements.
138
139
```xml { .api }
140
<!-- HTTP client options -->
141
<dependency>
142
<groupId>software.amazon.awssdk</groupId>
143
<artifactId>netty-nio-client</artifactId>
144
<version>${awsjavasdk.version}</version>
145
</dependency>
146
<dependency>
147
<groupId>software.amazon.awssdk</groupId>
148
<artifactId>apache-client</artifactId>
149
<version>${awsjavasdk.version}</version>
150
</dependency>
151
<dependency>
152
<groupId>software.amazon.awssdk</groupId>
153
<artifactId>url-connection-client</artifactId>
154
<version>${awsjavasdk.version}</version>
155
</dependency>
156
```
157
158
[HTTP Clients](./http-clients.md)
159
160
### Enhanced Libraries
161
162
High-level convenience libraries that provide simplified APIs for complex operations built on top of the core service clients.
163
164
```xml { .api }
165
<!-- Enhanced libraries -->
166
<dependency>
167
<groupId>software.amazon.awssdk</groupId>
168
<artifactId>s3-transfer-manager</artifactId>
169
<version>${awsjavasdk.version}</version>
170
</dependency>
171
<dependency>
172
<groupId>software.amazon.awssdk</groupId>
173
<artifactId>dynamodb-enhanced</artifactId>
174
<version>${awsjavasdk.version}</version>
175
</dependency>
176
<dependency>
177
<groupId>software.amazon.awssdk</groupId>
178
<artifactId>iam-policy-builder</artifactId>
179
<version>${awsjavasdk.version}</version>
180
</dependency>
181
```
182
183
[Enhanced Libraries](./enhanced-libraries.md)
184
185
### Authentication & Security
186
187
Authentication, HTTP signing, and security components for AWS service requests including credential providers and signing algorithms.
188
189
```xml { .api }
190
<!-- Authentication components -->
191
<dependency>
192
<groupId>software.amazon.awssdk</groupId>
193
<artifactId>http-auth</artifactId>
194
<version>${awsjavasdk.version}</version>
195
</dependency>
196
<dependency>
197
<groupId>software.amazon.awssdk</groupId>
198
<artifactId>http-auth-aws</artifactId>
199
<version>${awsjavasdk.version}</version>
200
</dependency>
201
<dependency>
202
<groupId>software.amazon.awssdk</groupId>
203
<artifactId>auth-crt</artifactId>
204
<version>${awsjavasdk.version}</version>
205
</dependency>
206
```
207
208
[Authentication](./authentication.md)
209
210
## Types
211
212
```xml { .api }
213
<!-- BOM artifact coordinates -->
214
<dependency>
215
<groupId>software.amazon.awssdk</groupId>
216
<artifactId>bom</artifactId>
217
<version>2.33.4</version>
218
<type>pom</type>
219
<scope>import</scope>
220
</dependency>
221
222
<!-- Version property used throughout BOM -->
223
<properties>
224
<awsjavasdk.version>2.33.4</awsjavasdk.version>
225
</properties>
226
```