Bill of Materials providing centralized dependency management for all AWS SDK for Java service clients and components
npx @tessl/cli install tessl/maven-com-amazonaws--aws-java-sdk-bom@1.12.0The AWS Java SDK BOM (Bill of Materials) provides centralized dependency management for all AWS SDK for Java service clients and components, enabling consistent versioning across 379 AWS service modules without requiring explicit version declarations for each dependency.
The AWS Java SDK BOM is a Maven dependency management artifact that simplifies version control for the comprehensive AWS SDK for Java ecosystem. This BOM manages 379 individual AWS service client libraries, ensuring version compatibility and eliminating dependency conflicts across the entire AWS service catalog. It serves as the single source of truth for version alignment in enterprise applications using multiple AWS services, from core infrastructure services like S3 and EC2 to specialized services like machine learning, IoT, and analytics platforms.
Key Features:
<dependencyManagement><dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.12.789</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>After importing the BOM, declare AWS SDK service dependencies without versions:
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<!-- Version managed by BOM -->
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ec2</artifactId>
<!-- Version managed by BOM -->
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<!-- Version managed by BOM -->
</dependency>
</dependencies><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-aws-app</artifactId>
<version>1.0.0</version>
<properties>
<java.version>1.8</java.version>
</properties>
<!-- Import AWS SDK BOM for version management -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.12.789</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Declare specific AWS services needed -->
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
</dependency>
</dependencies>
</project>The AWS Java SDK BOM leverages Maven's dependency management capabilities to provide a sophisticated versioning strategy for the extensive AWS SDK ecosystem:
${awsjavasdk.version} (1.12.789)The BOM follows Maven's standard import scope pattern, allowing developers to:
<dependencyManagement> sectionEssential infrastructure components managed by the BOM:
<!-- Core SDK functionality -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
</dependency>
<!-- Data models for all services -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-models</artifactId>
</dependency>
<!-- Simple Workflow libraries -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-swf-libraries</artifactId>
</dependency>EC2, Lambda, containers, and compute platforms:
<!-- Elastic Compute Cloud -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ec2</artifactId>
</dependency>
<!-- AWS Lambda -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-lambda</artifactId>
</dependency>
<!-- Elastic Container Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-ecs</artifactId>
</dependency>
<!-- Elastic Kubernetes Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-eks</artifactId>
</dependency>
<!-- AWS Batch -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-batch</artifactId>
</dependency>S3, EFS, and other storage solutions:
<!-- Simple Storage Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
<!-- S3 Control -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3control</artifactId>
</dependency>
<!-- Elastic File System -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-efs</artifactId>
</dependency>
<!-- FSx -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-fsx</artifactId>
</dependency>
<!-- Glacier -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-glacier</artifactId>
</dependency>DynamoDB, RDS, and specialized databases:
<!-- DynamoDB -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
</dependency>
<!-- Relational Database Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-rds</artifactId>
</dependency>
<!-- Amazon Neptune -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-neptune</artifactId>
</dependency>
<!-- DocumentDB -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-docdb</artifactId>
</dependency>
<!-- Timestream -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-timestreamwrite</artifactId>
</dependency>IAM, KMS, and security management:
<!-- Identity and Access Management -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-iam</artifactId>
</dependency>
<!-- Key Management Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-kms</artifactId>
</dependency>
<!-- Security Token Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sts</artifactId>
</dependency>
<!-- Secrets Manager -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-secretsmanager</artifactId>
</dependency>SQS, SNS, and event-driven architectures:
<!-- Simple Queue Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sqs</artifactId>
</dependency>
<!-- Simple Notification Service -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sns</artifactId>
</dependency>
<!-- Amazon EventBridge -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-eventbridge</artifactId>
</dependency>
<!-- Kinesis -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-kinesis</artifactId>
</dependency>SageMaker, Rekognition, and AI/ML platforms:
<!-- Amazon SageMaker -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-sagemaker</artifactId>
</dependency>
<!-- Amazon Rekognition -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-rekognition</artifactId>
</dependency>
<!-- Amazon Comprehend -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-comprehend</artifactId>
</dependency>
<!-- Amazon Bedrock -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bedrock</artifactId>
</dependency>The BOM manages versions for 379 AWS service modules, including:
<!-- All dependencies use consistent versioning -->
<dependency>
<artifactId>aws-java-sdk-[service]</artifactId>
<groupId>com.amazonaws</groupId>
<version>${awsjavasdk.version}</version>
<optional>false</optional>
</dependency>The ${awsjavasdk.version} variable ensures all 379 modules use version 1.12.789, providing:
As a dependency management tool, the BOM:
<dependencyManagement> scopeImportant: AWS SDK for Java 1.x is in maintenance mode as of July 31, 2024, and will reach end-of-support on December 31, 2025. AWS recommends migrating to AWS SDK for Java 2.x for continued support and new features.
Version Conflicts: If you experience version conflicts, ensure the BOM is imported in <dependencyManagement> before other BOMs:
<dependencyManagement>
<dependencies>
<!-- AWS BOM should be first -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.12.789</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Other BOMs after -->
</dependencies>
</dependencyManagement>Missing Service: If a service client is not available, verify the artifactId matches the managed dependency list. All 379 service modules use the pattern aws-java-sdk-[service-name].