Ioan Eugen Stan created JAMES-3214:
--------------------------------------

             Summary: Remove test only libraries from being pulled as 
transitive dependencies of production artifacts
                 Key: JAMES-3214
                 URL: https://issues.apache.org/jira/browse/JAMES-3214
             Project: James Server
          Issue Type: Improvement
            Reporter: Ioan Eugen Stan


assertj-core , equalsverifier, rest-assured (and maybe other libraries) belong 
to testing (probably more). And they leaked to our "production" builds which 
depends on just 2 jars from James:

    implementation "org.apache.james:james-server-jpa-guice:${jamesVersion}"
    implementation "org.apache.james:james-server-cli:${jamesVersion}"

== Context

I'm working with David @dleangen on the self hosting with Apache James. We 
built a sandbox to play around and experiment: 
https://github.com/ieugen/james-self-hosting-sandbox . 

Current setup is to use gradle + application plugin to build a custom 
distribution.
We build a zip distribution that pulls in all the dependencies including the 
offending ones used in testing.

The distribution has 137MB unpacked. files just James, without the JRE. 

On initial inspection it seems there are test only dependencies that are being 
pulled as transitive dependencies of the 2 dependencies:

Bellow is a list of top most large dependencies with ls -lSh 
james-self-hosting-sandbox/lib | head -n 40
total 132M
-rw-r--r-- 1 ieugen ieugen  13M iun 12 13:19 icu4j-64.2.jar
-rw-r--r-- 1 ieugen ieugen  12M iun 12 13:19 testcontainers-1.12.0.jar
-rw-r--r-- 1 ieugen ieugen 5,5M iun 12 13:19 scala-library-2.13.1.jar
-rw-r--r-- 1 ieugen ieugen 5,3M iun 12 13:19 groovy-2.5.6.jar
-rw-r--r-- 1 ieugen ieugen 5,0M iun 12 13:19 camel-core-2.24.1.jar
-rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 openjpa-3.1.0.jar
-rw-r--r-- 1 ieugen ieugen 4,4M iun 12 13:19 bcprov-jdk15on-1.62.jar
-rw-r--r-- 1 ieugen ieugen 4,2M iun 12 13:19 assertj-core-3.12.2.jar
-rw-r--r-- 1 ieugen ieugen 3,7M iun 12 13:19 jaxb-osgi-2.2.10.jar
-rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 scala-reflect-2.13.1.jar
-rw-r--r-- 1 ieugen ieugen 3,5M iun 12 13:19 lucene-smartcn-3.6.2.jar
-rw-r--r-- 1 ieugen ieugen 3,2M iun 12 13:19 shapeless_2.13-2.3.3.jar
-rw-r--r-- 1 ieugen ieugen 3,1M mai  3 05:45 derby-10.14.2.0.jar
-rw-r--r-- 1 ieugen ieugen 2,8M iun 12 13:19 equalsverifier-3.1.9.jar
-rw-r--r-- 1 ieugen ieugen 2,7M iun 12 13:19 guava-28.1-jre.jar
-rw-r--r-- 1 ieugen ieugen 2,6M iun 12 13:19 jna-platform-5.3.1.jar
-rw-r--r-- 1 ieugen ieugen 2,4M iun 12 13:19 jgroups-3.6.13.Final.jar
-rw-r--r-- 1 ieugen ieugen 2,2M feb 17 21:24 commons-math3-3.6.1.jar
-rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 lucene-core-3.6.2.jar
-rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 reactor-core-3.3.0.RELEASE.jar
-rw-r--r-- 1 ieugen ieugen 1,5M iun 12 13:19 jna-5.3.1.jar
-rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 activemq-client-5.15.9.jar
-rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 jackson-databind-2.10.1.jar
-rw-r--r-- 1 ieugen ieugen 1,4M iun 12 13:19 httpclient-osgi-4.5.9.jar
-rw-r--r-- 1 ieugen ieugen 1,3M iun 12 13:19 netty-3.10.6.Final.jar
-rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 activemq-broker-5.15.9.jar
-rw-r--r-- 1 ieugen ieugen 1,2M iun 12 13:19 lucene-analyzers-3.6.2.jar
-rw-r--r-- 1 ieugen ieugen 1,1M iun 12 13:19 jaxb-impl-2.3.1.jar
-rw-r--r-- 1 ieugen ieugen 851K iun 12 13:19 bcpkix-jdk15on-1.62.jar
-rw-r--r-- 1 ieugen ieugen 827K iun 12 13:19 guice-4.2.2.jar
-rw-r--r-- 1 ieugen ieugen 757K iun 12 13:19 httpclient-4.5.10.jar
-rw-r--r-- 1 ieugen ieugen 737K iun 12 13:19 commons-collections4-4.3.jar
-rw-r--r-- 1 ieugen ieugen 732K iun 12 13:19 play-json_2.13-2.8.1.jar
-rw-r--r-- 1 ieugen ieugen 718K iun 12 13:19 javassist-3.21.0-GA.jar
-rw-r--r-- 1 ieugen ieugen 715K iun 12 13:19 artemis-core-client-2.9.0.jar
-rw-r--r-- 1 ieugen ieugen 687K iun 12 13:19 rest-assured-4.0.0.jar
-rw-r--r-- 1 ieugen ieugen 670K iun 12 13:19 activemq-openwire-legacy-5.15.9.jar
-rw-r--r-- 1 ieugen ieugen 663K iun 12 13:19 activemq-kahadb-store-5.15.9.jar
-rw-r--r-- 1 ieugen ieugen 644K mai  3 05:45 javax.mail-1.6.2.jar


I believe this is quite big.




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to