or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/maven-com-amazonaws--aws-java-sdk-bom

Bill of Materials providing centralized dependency management for all AWS SDK for Java service clients and components

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.amazonaws/aws-java-sdk-bom@1.12.x

To install, run

npx @tessl/cli install tessl/maven-com-amazonaws--aws-java-sdk-bom@1.12.0

index.mddocs/

AWS Java SDK BOM

The 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.

Overview

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:

  • Centralized Version Management: Single BOM import manages all 379 AWS service client versions
  • Conflict Prevention: Eliminates version mismatches between AWS SDK components
  • Simplified Dependency Declarations: No version numbers required for individual AWS service dependencies
  • Complete AWS Coverage: Includes all available AWS services in Java SDK v1.x
  • Enterprise Ready: Designed for large-scale applications using multiple AWS services

Package Information

  • Package Name: aws-java-sdk-bom
  • Group ID: com.amazonaws
  • Package Type: Maven BOM (Bill of Materials)
  • Language: Java (Dependency Management)
  • Version: 1.12.789
  • Installation: Import via Maven <dependencyManagement>

Core Integration

Maven BOM Import

<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>

Service Dependencies Declaration

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>

Basic Usage

Complete Maven Configuration Example

<?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>

Architecture

The AWS Java SDK BOM leverages Maven's dependency management capabilities to provide a sophisticated versioning strategy for the extensive AWS SDK ecosystem:

Dependency Management Strategy

  1. Version Alignment: All 379 AWS SDK modules use a single version variable ${awsjavasdk.version} (1.12.789)
  2. Conflict Resolution: Prevents version conflicts between AWS SDK components and their transitive dependencies
  3. Transitive Management: Manages versions of shared dependencies like Jackson, Apache HTTP Client, and other common libraries
  4. No Runtime Impact: BOM itself adds no runtime dependencies or classes to your application

BOM Scope and Coverage

  • Core Infrastructure: Essential AWS SDK components (core, models, SWF libraries)
  • Service Clients: Complete coverage of all 379 AWS service-specific client libraries
  • Version Synchronization: Ensures compatibility testing across the entire AWS service catalog
  • Dependency Inheritance: Child projects automatically inherit managed versions without explicit declarations

Integration Patterns

The BOM follows Maven's standard import scope pattern, allowing developers to:

  • Import once in <dependencyManagement> section
  • Declare service-specific dependencies without version numbers
  • Override BOM-managed versions when necessary (though not recommended)
  • Combine with other BOMs while maintaining AWS SDK version consistency

Capabilities

Core SDK Components

Essential 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>

Compute Services

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>

Storage Services

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>

Database Services

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>

Security & Identity Services

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>

Messaging & Queuing Services

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>

Machine Learning Services

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>

Managed Dependencies

Complete Service Coverage

The BOM manages versions for 379 AWS service modules, including:

  • Compute: EC2, Lambda, ECS, EKS, Batch, Lightsail, App Runner
  • Storage: S3, EFS, FSx, Glacier, Storage Gateway, S3 Outposts
  • Database: RDS, DynamoDB, DocumentDB, Neptune, Timestream, MemoryDB, Keyspaces
  • Networking: CloudFront, Route53, Direct Connect, VPC Lattice, Network Firewall
  • Security: IAM, KMS, Secrets Manager, WAF, Shield, GuardDuty, Security Hub
  • Analytics: Athena, EMR, Kinesis, QuickSight, Glue, Lake Formation
  • Machine Learning: SageMaker, Rekognition, Comprehend, Polly, Textract, Bedrock
  • IoT: IoT Core, IoT Analytics, IoT Events, IoT Device Management, IoT Fleet Hub
  • Developer Tools: CodeCommit, CodeBuild, CodeDeploy, CodePipeline, CodeArtifact
  • Management: CloudFormation, CloudTrail, CloudWatch, Config, Systems Manager
  • Application Integration: EventBridge, SQS, SNS, Step Functions, API Gateway

Version Management Strategy

<!-- 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:

  • Compatibility Guarantee: All components tested together
  • Conflict Prevention: No version mismatches between AWS SDK modules
  • Simplified Maintenance: Single version upgrade point
  • Transitive Alignment: Consistent dependency resolution

Special Considerations

BOM Limitations

As a dependency management tool, the BOM:

  • No Runtime Code: Contains no executable classes or interfaces
  • Maven Specific: Designed for Maven dependency management
  • Version Locked: All managed dependencies use the same version
  • Import Required: Must be imported via <dependencyManagement> scope

Migration Notice

Important: 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.

Java Version Requirements

  • Minimum Java Version: Java 1.8+
  • Recommended: Java 11 or later for optimal performance
  • Compatibility: Tested on OpenJDK and Oracle JDK

Error Handling

Common BOM Issues

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].