Both Apache Client and Netty are included in the runtime scope by default
- 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
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