Skip to content

Get the bundled JAR size under control #911

@johnmay

Description

@johnmay

The newer Apache JENA (cdk-iordf) version pulls in a lot of dependencies which ultimately means our "cdk-bundle" size is nearly double. A neat trick to work out where bloat is coming from is to create a WAR file.

Currently we are now sitting at 45MB (up from 26MB for CDK 2.7.1). I would hate for this to spiral further and up in the RDKit's 700MB conda install size territory :-).

Here is the break down:

java
[john@sentinel:bundle]% du -sch target/cdk-bundle-2.8/WEB-INF/lib/* | sort -h
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ionpot-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qm-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarionpot-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-core-1.1.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-control-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-jniinchi-support-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pdbcml-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarcml-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-builder3dtools-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-libiomd-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarprotein-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-fragment-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-iordf-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-model-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderawt-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-signature-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-tautomer-2.8.jar
 20K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-cip-2.8.jar
 20K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarbond-2.8.jar
 20K	target/cdk-bundle-2.8/WEB-INF/lib/jcl-over-slf4j-1.7.36.jar
 24K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pcore-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-atomtype-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-diff-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-inchi-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-libiocml-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-valencycheck-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/javax.annotation-api-1.3.2.jar
 36K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-charges-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/beam-func-1.3.4.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-dict-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-group-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/jama-1.0.3.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsar-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-render-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-smarts-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/signatures-1.1.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/slf4j-api-1.7.36.jar
 52K	target/cdk-bundle-2.8/WEB-INF/lib/commons-csv-1.9.0.jar
 52K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-ps-2.4.jar
 56K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderextra-2.8.jar
 60K	target/cdk-bundle-2.8/WEB-INF/lib/commons-cli-1.5.0.jar
 64K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-depict-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-hash-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-interfaces-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-structgen-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsbase-2.4.jar
 72K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-io-2.2.2.jar
 76K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-pdf-2.4.jar
 76K	target/cdk-bundle-2.8/WEB-INF/lib/jackson-annotations-2.13.1.jar
 76K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-api-1.1.jar
 80K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-formula-2.8.jar
 84K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-smiles-2.8.jar
 92K	target/cdk-bundle-2.8/WEB-INF/lib/jgrapht-0.6.0.jar
 92K	target/cdk-bundle-2.8/WEB-INF/lib/tagsoup-1.2.1.jar
104K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ioformats-2.8.jar
112K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsaratomic-2.8.jar
112K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-tests-2.4.jar
128K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-isomorphism-2.8.jar
128K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphics2d-2.4.jar
132K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-datadebug-2.8.jar
136K	target/cdk-bundle-2.8/WEB-INF/lib/beam-core-1.3.4.jar
136K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-silent-2.8.jar
136K	target/cdk-bundle-2.8/WEB-INF/lib/jena-iri-4.5.0.jar
140K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-forcefield-2.8.jar
144K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ctab-2.8.jar
144K	target/cdk-bundle-2.8/WEB-INF/lib/jakarta.json-2.0.1.jar
148K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-reaction-2.8.jar
156K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-data-2.8.jar
160K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-fingerprint-2.8.jar
164K	target/cdk-bundle-2.8/WEB-INF/lib/collection-0.7.jar
164K	target/cdk-bundle-2.8/WEB-INF/lib/httpclient-cache-4.5.13.jar
168K	target/cdk-bundle-2.8/WEB-INF/lib/vecmath-1.5.2.jar
188K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-2.4.jar
192K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderbasic-2.8.jar
212K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-extra-2.8.jar
216K	target/cdk-bundle-2.8/WEB-INF/lib/xml-apis-1.4.01.jar
240K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarmolecular-2.8.jar
244K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-sdg-2.8.jar
244K	target/cdk-bundle-2.8/WEB-INF/lib/gson-2.9.0.jar
248K	target/cdk-bundle-2.8/WEB-INF/lib/jena-base-4.5.0.jar
272K	target/cdk-bundle-2.8/WEB-INF/lib/serializer-2.7.2.jar
276K	target/cdk-bundle-2.8/WEB-INF/lib/titanium-json-ld-1.2.0.jar
308K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-core-2.8.jar
308K	target/cdk-bundle-2.8/WEB-INF/lib/log4j-api-2.18.0.jar
320K	target/cdk-bundle-2.8/WEB-INF/lib/commons-io-2.11.0.jar
320K	target/cdk-bundle-2.8/WEB-INF/lib/xom-1.3.7.jar
324K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-standard-2.8.jar
324K	target/cdk-bundle-2.8/WEB-INF/lib/httpcore-4.4.13.jar
340K	target/cdk-bundle-2.8/WEB-INF/lib/libthrift-0.16.0.jar
344K	target/cdk-bundle-2.8/WEB-INF/lib/log4j-1.2-api-2.18.0.jar
348K	target/cdk-bundle-2.8/WEB-INF/lib/commons-codec-1.15.jar
368K	target/cdk-bundle-2.8/WEB-INF/lib/jackson-core-2.13.1.jar
404K	target/cdk-bundle-2.8/WEB-INF/lib/euclid-2.3.jar
440K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-io-2.8.jar
556K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-win32-x86-1.1.jar
560K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pdb-2.8.jar
576K	target/cdk-bundle-2.8/WEB-INF/lib/commons-lang3-3.12.0.jar
600K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-legacy-2.8.jar
600K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-arm-1.1.jar
620K	target/cdk-bundle-2.8/WEB-INF/lib/joda-time-2.11.0.jar
628K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-x86-1.1.jar
644K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-darwin-aarch64-1.1.jar
660K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-x86-64-1.1.jar
668K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-win32-x86-64-1.1.jar
688K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-darwin-x86-64-1.1.jar
764K	target/cdk-bundle-2.8/WEB-INF/lib/httpclient-4.5.13.jar
968K	target/cdk-bundle-2.8/WEB-INF/lib/commons-math-2.2.jar
996K	target/cdk-bundle-2.8/WEB-INF/lib/commons-compress-1.21.jar
1.0M	target/cdk-bundle-2.8/WEB-INF/lib/cmlxom-4.3.jar
1.4M	target/cdk-bundle-2.8/WEB-INF/lib/xercesImpl-2.12.2.jar
1.5M	target/cdk-bundle-2.8/WEB-INF/lib/jackson-databind-2.13.1.jar
1.6M	target/cdk-bundle-2.8/WEB-INF/lib/protobuf-java-3.19.3.jar
1.7M	target/cdk-bundle-2.8/WEB-INF/lib/jna-5.10.0.jar
1.8M	target/cdk-bundle-2.8/WEB-INF/lib/jena-core-4.5.0.jar
1.8M	target/cdk-bundle-2.8/WEB-INF/lib/log4j-core-2.18.0.jar
2.2M	target/cdk-bundle-2.8/WEB-INF/lib/cdk-builder3d-2.8.jar
2.9M	target/cdk-bundle-2.8/WEB-INF/lib/jsonld-java-0.13.4.jar
3.0M	target/cdk-bundle-2.8/WEB-INF/lib/jena-shaded-guava-4.5.0.jar
3.0M	target/cdk-bundle-2.8/WEB-INF/lib/xalan-2.7.2.jar
3.4M	target/cdk-bundle-2.8/WEB-INF/lib/jena-arq-4.5.0.jar
 45M	total

If I remove cdk-iordf from the bundle it drops back down to 26MB. Which is still big IMO but doubling size between releases is not ideal.

4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ionpot-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qm-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarionpot-2.8.jar
4.0K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-core-1.1.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-control-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-jniinchi-support-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pdbcml-2.8.jar
8.0K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarcml-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-builder3dtools-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-libiomd-2.8.jar
 12K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarprotein-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-fragment-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-model-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderawt-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-signature-2.8.jar
 16K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-tautomer-2.8.jar
 20K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-cip-2.8.jar
 20K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarbond-2.8.jar
 24K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pcore-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-atomtype-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-diff-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-inchi-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-libiocml-2.8.jar
 28K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-valencycheck-2.8.jar
 36K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-charges-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/beam-func-1.3.4.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-dict-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-group-2.8.jar
 40K	target/cdk-bundle-2.8/WEB-INF/lib/jama-1.0.3.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsar-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-render-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-smarts-2.8.jar
 44K	target/cdk-bundle-2.8/WEB-INF/lib/signatures-1.1.jar
 52K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-ps-2.4.jar
 56K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderextra-2.8.jar
 64K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-depict-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-hash-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-interfaces-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-structgen-2.8.jar
 68K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsbase-2.4.jar
 72K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-io-2.2.2.jar
 76K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-pdf-2.4.jar
 76K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-api-1.1.jar
 80K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-formula-2.8.jar
 84K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-smiles-2.8.jar
 92K	target/cdk-bundle-2.8/WEB-INF/lib/jgrapht-0.6.0.jar
 92K	target/cdk-bundle-2.8/WEB-INF/lib/tagsoup-1.2.1.jar
104K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ioformats-2.8.jar
112K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsaratomic-2.8.jar
112K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-tests-2.4.jar
128K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-isomorphism-2.8.jar
128K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphics2d-2.4.jar
132K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-datadebug-2.8.jar
136K	target/cdk-bundle-2.8/WEB-INF/lib/beam-core-1.3.4.jar
136K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-silent-2.8.jar
140K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-forcefield-2.8.jar
144K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-ctab-2.8.jar
148K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-reaction-2.8.jar
156K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-data-2.8.jar
160K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-fingerprint-2.8.jar
168K	target/cdk-bundle-2.8/WEB-INF/lib/vecmath-1.5.2.jar
188K	target/cdk-bundle-2.8/WEB-INF/lib/freehep-graphicsio-2.4.jar
192K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-renderbasic-2.8.jar
212K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-extra-2.8.jar
216K	target/cdk-bundle-2.8/WEB-INF/lib/xml-apis-1.4.01.jar
240K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-qsarmolecular-2.8.jar
244K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-sdg-2.8.jar
272K	target/cdk-bundle-2.8/WEB-INF/lib/serializer-2.7.2.jar
308K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-core-2.8.jar
308K	target/cdk-bundle-2.8/WEB-INF/lib/log4j-api-2.18.0.jar
320K	target/cdk-bundle-2.8/WEB-INF/lib/commons-io-2.11.0.jar
320K	target/cdk-bundle-2.8/WEB-INF/lib/xom-1.3.7.jar
324K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-standard-2.8.jar
344K	target/cdk-bundle-2.8/WEB-INF/lib/log4j-1.2-api-2.18.0.jar
404K	target/cdk-bundle-2.8/WEB-INF/lib/euclid-2.3.jar
440K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-io-2.8.jar
556K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-win32-x86-1.1.jar
560K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-pdb-2.8.jar
576K	target/cdk-bundle-2.8/WEB-INF/lib/commons-lang3-3.12.0.jar
600K	target/cdk-bundle-2.8/WEB-INF/lib/cdk-legacy-2.8.jar
600K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-arm-1.1.jar
620K	target/cdk-bundle-2.8/WEB-INF/lib/joda-time-2.11.0.jar
628K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-x86-1.1.jar
644K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-darwin-aarch64-1.1.jar
660K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-linux-x86-64-1.1.jar
668K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-win32-x86-64-1.1.jar
688K	target/cdk-bundle-2.8/WEB-INF/lib/jna-inchi-darwin-x86-64-1.1.jar
968K	target/cdk-bundle-2.8/WEB-INF/lib/commons-math-2.2.jar
1.0M	target/cdk-bundle-2.8/WEB-INF/lib/cmlxom-4.3.jar
1.4M	target/cdk-bundle-2.8/WEB-INF/lib/xercesImpl-2.12.2.jar
1.7M	target/cdk-bundle-2.8/WEB-INF/lib/jna-5.10.0.jar
1.8M	target/cdk-bundle-2.8/WEB-INF/lib/log4j-core-2.18.0.jar
2.2M	target/cdk-bundle-2.8/WEB-INF/lib/cdk-builder3d-2.8.jar
3.0M	target/cdk-bundle-2.8/WEB-INF/lib/xalan-2.7.2.jar
 26M	total

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions