aws / aws/aws-sdk-java-v2

Both Apache Client and Netty are included in the runtime scope by default

Open
#3,040 7 comments 0 reactions 0 assignees View on GitHub
documentation p3
Dominant language
Java
Stars
2.6k
Forks
1k
Avg merge
2d 9h
Merged PRs (30d)
51

Description

### Describe the bug

When simply including a service, say `ec2` in a Gradle build, both the Apache Client and Netty get pulled in as runtime transitive dependencies by default.

This is due to https://github.com/aws/aws-sdk-java-v2/blob/2f4b44d7a08a4e2f0b26fe26b0325b065e4547c3/services/pom.xml#L381 and https://github.com/aws/aws-sdk-java-v2/blob/2f4b44d7a08a4e2f0b26fe26b0325b065e4547c3/services/pom.xml#L387

This then automatically gets picked up by the Gradle application plugin and needlessly includes tons of jars in the final package.

### Expected behavior

Default to a single client, preferably the plain and lightweight `url-connection-client`.

### Current behavior

Dozens of additional jars are pulled in by default.

### Steps to Reproduce

Create a new `build.gradle.kts` file and add the following dependency: `implementation("software.amazon.awssdk:ec2:2.17.131")`.

Now run `gradle dependencies` and check the `runtimeClasspath` section.

### Possible Solution

Only depend on `url-connection-client` by default.

### Context

_No response_

### AWS Java SDK version used

2.17.131

### JDK version used

17.0.2

### Operating System and version

Win11 x64

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.