RuedigerMoeller / kontraktor

distributed Actors for Java 8 / JavaScript
GNU Lesser General Public License v3.0
343 stars 48 forks source link

Could de.ruedigermoeller:kontraktor-web:4.30 drop off redundant dependencies? #119

Open Celebrate-future opened 2 years ago

Celebrate-future commented 2 years ago

Hi! I found the pom file of project de.ruedigermoeller:kontraktor-web:4.30 introduced 54 dependencies. However, among them, 11 libraries (20%) are not used by your project. I list the redundant dependencies below (labelled as red ones in the figure):

Redundant dependencies

org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile com.google.jsinterop:jsinterop-annotations:jar:1.0.0:compile com.google.code.findbugs:jsr305:jar:3.0.1:compile org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:jar:1.0.0.Final:compile org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec:jar:1.0.0.Final:compile javax.websocket:javax.websocket-api:jar:1.1:compile com.google.j2objc:j2objc-annotations:jar:1.1:compile com.google.javascript:closure-compiler-externs:jar:v20181008:compile com.google.errorprone:error_prone_annotations:jar:2.3.1:compile javax.servlet:javax.servlet-api:jar:3.1.0:compile org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec:jar:1.1.0.Final:compile

Outdated dependencies

org.jboss.spec.javax.websocket:jboss-websocket-api_1.1_spec:1.1.0.Final (3230 days without maintenance) com.google.jsinterop:jsinterop-annotations:1.0.0 (2557 days without maintenance) javax.websocket:javax.websocket-api:1.1 (3279 days without maintenance) org.jboss.spec.javax.servlet:jboss-servlet-api_3.1_spec:1.0.0.Final (3580 days without maintenance) org.codehaus.mojo:animal-sniffer-annotations:1.14 (3076 days without maintenance) com.google.j2objc:j2objc-annotations:1.1 (2559 days without maintenance) javax.servlet:javax.servlet-api:3.1.0 (3747 days without maintenance) org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.0.Final (3581 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, one of the redundant dependencies _org.jboss.spec.javax.servlet:jboss-servlet-api_3.1spec:jar:1.0.0.Final:compile incorporates an incompatible license COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (COMMON DEVELOPMENT AND DISTRIBUTION LICENSE cannot be used by the project with license LGPL 3), one of the redundant dependencies _org.jboss.spec.javax.websocket:jboss-websocket-api_1.1spec:jar:1.1.0.Final:compile incorporates an incompatible license COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (COMMON DEVELOPMENT AND DISTRIBUTION LICENSE cannot be used by the project with license LGPL 3). As such, I suggest a refactoring operation for de.ruedigermoeller:kontraktor-web:4.30’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 de.ruedigermoeller:kontraktor-web:4.30’s maven tests.

Best regards