Could com.oracle.oci.sdk:oci-java-sdk-circuitbreaker:2.19.0 drop off redundant dependencies? by Celebrate-future · Pull Request #375 · oracle/oci-java-sdk

Hi! I found the pom file of project com.oracle.oci.sdk:oci-java-sdk-circuitbreaker:2.19.0 introduced 38 dependencies. However, among them, 7 libraries (18%) are not used by your project. I list the redundant dependencies below (labelled as red ones in the figure):

Redundant dependencies

com.google.code.findbugs:jsr305:jar:3.0.2:compile
org.glassfish.hk2.external:jakarta.inject:jar:2.6.1:compile
com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile
jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
com.google.j2objc:j2objc-annotations:jar:1.3:compile
io.vavr:vavr-match:jar:0.10.2:compile
com.google.errorprone:error_prone_annotations:jar:2.7.1:compile

Outdated dependencies

org.glassfish.hk2.external:jakarta.inject:2.6.1 (1436 days without maintenance)
com.google.j2objc:j2objc-annotations:1.3 (2383 days without maintenance)


Removing the redundant dependencies can reduce the size of project and prevent potential dependency conflict issues (i.e., multiple versions of the same library). More importantly, 2 of the redundant dependencies com.google.code.findbugs:jsr305:jar:3.0.2:compile, org.glassfish.hk2.external:jakarta.inject:jar:2.6.1:compile induced dependency conflict in the dependency graph. As such, I suggest a refactoring operation for com.oracle.oci.sdk:oci-java-sdk-circuitbreaker:2.19.0’s pom file.

The attached PR helps resolve the reported problem. It is safe to remove the unused libraries (we considered Java reflection relations when analyzing the dependencies). These changes have passed com.oracle.oci.sdk:oci-java-sdk-circuitbreaker:2.19.0’s maven tests.

Best regards
image