aws / aws/aws-sdk-java-v2

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

Offen
#3,040 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
documentation p3
Vorherrschende Sprache
Java
Sterne
2.6k
Forks
1k
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
51

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Untersuche services/pom.xml in den referenzierten Zeilen, um nachzuvollziehen, warum sowohl Apache Client als auch Netty in den Laufzeitbereich gelangen. Reproduziere dies mit build.gradle.kts unter Verwendung der ec2-Abhängigkeit, führe anschließend gradle dependencies aus und überprüfe runtimeClasspath. Als erledigt gilt die Aufgabe, wenn die Standardabhängigkeit nur den schlanken url-connection-client und nicht beide Clients samt ihren zusätzlichen JARs einbindet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
build-system
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.