AWS SDK v2 Migration
Migrate Java projects from AWS SDK v1 (com.amazonaws) to v2 (software.amazon.awssdk).
When to Use
- Project uses deprecated AWS SDK v1 (
com.amazonaws.*imports) - Dependabot/security scans flag v1 vulnerabilities
- Need features only available in v2 (async clients, HTTP/2, etc.)
Skill Contents
Sections
- When to Use (L22-L27)
- Migration Strategy (Priority Order) (L46-L54)
- Quick Start (L55-L94)
- References (L95-L100)
- Related Command (L101-L104)
- Related Resources (L105-L108)
Available Resources
📚 references/ - Detailed documentation
- migration patterns
Migration Strategy (Priority Order)
| Priority | Strategy | When to Use |
|---|---|---|
| 1 | Update library | A newer version of the library uses v2 |
| 2 | Update BOM | v1 comes from Spring Boot or other BOM |
| 3 | Dependency substitution | Replace v1 artifact with v2 equivalent |
| 4 | Direct code migration | Only if no library update available |
Quick Start
1. Identify v1 Usages
# Find all files with v1 imports
grep -r "import com.amazonaws" --include="*.java" . | grep -v "/build/"
# Check dependency tree
./gradlew dependencies --configuration runtimeClasspath | grep -B5 "com.amazonaws"
2. Apply Migration
See references/migration-patterns.md for detailed code migration patterns.
Dependency Substitution (in root build.gradle):
allprojects {
configurations.configureEach {
resolutionStrategy.dependencySubstitution {
substitute module("com.amazonaws:aws-java-sdk-s3")
using module("software.amazon.awssdk:s3:${libs.versions.aws.sdk.v2.get()}")
because "Migrate to AWS SDK v2"
}
}
}
3. Validate
# Verify no v1 imports remain
grep -r "import com.amazonaws" --include="*.java" . | grep -v "/build/"
# Build and test
./gradlew clean build test
References
| Reference | Content |
|---|---|
| references/migration-patterns.md | Code migration patterns for S3, SQS, SNS, Lambda |
Related Command
This skill is referenced by: /upgrade-to-aws-sdk-v2