dependency-analysis-gradle-plugin
dependency-analysis-gradle-plugin copied to clipboard
Shrink size of outputs on disk
This is a little thing, but our project's combined build directories are up to 500 MB - of which 450 MB are build/reports/dependency-analysis directories (and 40 MB is the assembled app including libraries). I have a docker build, which returns the build directories to the host system if the build fails, and it seems docker struggles when that directory gets much over 500 MB.
Not sure what if anything can be done about it? I could probably filter them out.
Thanks for the issue. Shrinking the size of these artifacts is something we've thought about. Our of curiosity, could you let me know which subdir(s) are the largest?
Attached is the output of tree --du -h on one of the subprojects. There are 26 subprojects, hence it getting up to such a large number.
Thank you, that's very helpful!
Gzipping just one of the largest single artifacts has reduced the size of that artifact by over 90%, and the size of this plugin's test suite output by around 25%.
I haven't checked, but I wonder if there's also a lot of duplication of files in each sub project? Perhaps there could be a single real file in some central directory and symlinks to it in the individual sub project report directories?
I haven't checked, but I wonder if there's also a lot of duplication of files in each sub project? Perhaps there could be a single real file in some central directory and symlinks to it in the individual sub project report directories?
Yes, there is some duplication, but resolving it isn't straightforward. An attempt was made at https://github.com/autonomousapps/dependency-analysis-gradle-plugin/pull/1004, but I didn't have time to pursue it and resolve the errors. I might get back to it eventually. (Edit, note to self: the errors were almost certainly about concurrent access to the same file during writes.)
@Mahoney would you be willing to test a snapshot (based on the linked PR) and see what the result is in your environment?
v2.13.0 includes a change that compresses the exploded-jars.json file (adding a .gz suffix in addition). Please let me know what the impact of this is when you get a chance, thanks.
Apologies, been very busy - I'll try and have a look over the weekend.
Apologies, been very busy - I'll try and have a look over the weekend.
np!
It's certainly made a substantial reduction - I reckon the reports have dropped from c. 315MB to c. 184MB. So just over a 40% reduction.
A quick analysis suggests that if the "real" data were stored in some directory under the root project's build directory, and just symlinked into the child project's build/reports/dependency-analysis directory, it would save a further 142 MB - that is, 77% of the disk space used is repetition between the subprojects.
Table showing potential savings
Slightly abridged to remove anything private, but doesn't change the numbers much.
| File name | File size (b) | Repetitions | Potential saving (b) |
|---|---|---|---|
| com.google.guava__guava__33.4.0-jre.json | 464,371 | 28 | 12,538,017 |
| org.jetbrains.kotlin__kotlin-stdlib__2.1.10.json | 221,791 | 56 | 12,198,505 |
| io.kotest__kotest-assertions-core-jvm__5.9.1.json | 370,551 | 30 | 10,745,979 |
| org.jetbrains.kotlinx__kotlinx-coroutines-core-jvm__1.10.1.json | 206,878 | 35 | 7,033,852 |
| com.fasterxml.jackson.core__jackson-databind__2.18.3.json | 228,369 | 30 | 6,622,701 |
| exploded-jars.json | 1,377,980 | 5 | 5,511,920 |
| com.datadoghq__datadog-api-client__2.33.1.json | 1,642,417 | 4 | 4,927,251 |
| org.wiremock__wiremock__3.12.1.json | 179,642 | 28 | 4,850,334 |
| org.apache.httpcomponents.core5__httpcore5__5.3.3.json | 158,074 | 28 | 4,267,998 |
| io.kotest__kotest-framework-engine-jvm__5.9.1.json | 151,320 | 28 | 4,085,640 |
| org.jetbrains.kotlin__kotlin-reflect__2.1.10.json | 555,019 | 8 | 3,885,133 |
| io.kotest__kotest-framework-api-jvm__5.9.1.json | 118,235 | 33 | 3,783,520 |
| com.github.jknack__handlebars__4.3.1.json | 138,003 | 28 | 3,726,081 |
| org.apache.httpcomponents.client5__httpclient5__5.4.2.json | 133,486 | 28 | 3,604,122 |
| org.eclipse.jetty__jetty-server__11.0.24.json | 89,624 | 28 | 2,419,848 |
| net.bytebuddy__byte-buddy__1.14.17.json | 796,077 | 4 | 2,388,231 |
| io.kotest__kotest-assertions-shared-jvm__5.9.1.json | 69,618 | 33 | 2,227,776 |
| org.checkerframework__checker-qual__3.43.0.json | 81,655 | 28 | 2,204,685 |
| com.networknt__json-schema-validator__1.5.6.json | 72,198 | 28 | 1,949,346 |
| org.eclipse.jetty__jetty-util__11.0.24.json | 69,770 | 28 | 1,883,790 |
| com.fasterxml.jackson.core__jackson-core__2.18.3.json | 63,370 | 30 | 1,837,730 |
| io.github.classgraph__classgraph__4.8.172.json | 61,690 | 28 | 1,665,630 |
| org.eclipse.jetty__jetty-client__11.0.24.json | 59,400 | 28 | 1,603,800 |
| exploded-jars.json | 1,379,371 | 2 | 1,379,371 |
| commons-io__commons-io__2.11.0.json | 49,370 | 28 | 1,332,990 |
| org.yaml__snakeyaml__2.3.json | 51,688 | 26 | 1,292,200 |
| com.jayway.jsonpath__json-path__2.9.0.json | 47,352 | 28 | 1,278,504 |
| org.http4k__http4k-core__6.0.1.0.json | 119,033 | 10 | 1,071,297 |
| org.junit.jupiter__junit-jupiter-api__5.8.2.json | 37,567 | 28 | 1,014,309 |
| org.apache.httpcomponents.core5__httpcore5-h2__5.3.3.json | 37,014 | 28 | 999,378 |
| org.eclipse.jetty__jetty-http__11.0.24.json | 35,483 | 28 | 958,041 |
| org.xmlunit__xmlunit-core__2.10.0.json | 34,834 | 28 | 940,518 |
| org.junit.platform__junit-platform-engine__1.8.2.json | 31,239 | 28 | 843,453 |
| org.eclipse.jetty.http2__http2-common__11.0.24.json | 30,320 | 28 | 818,640 |
| org.eclipse.jetty__jetty-io__11.0.24.json | 27,870 | 28 | 752,490 |
| net.javacrumbs.json-unit__json-unit-core__2.40.1.json | 26,790 | 28 | 723,330 |
| org.junit.platform__junit-platform-launcher__1.8.2.json | 25,521 | 28 | 689,067 |
| org.glassfish.jersey.core__jersey-common__3.0.8.json | 213,272 | 4 | 639,816 |
| exploded-jars.json | 211,851 | 4 | 635,553 |
| org.jetbrains.kotlinx__kotlinx-coroutines-test-jvm__1.10.1.json | 19,529 | 32 | 605,399 |
| com.fasterxml.jackson.datatype__jackson-datatype-jsr310__2.18.3.json | 21,327 | 29 | 597,156 |
| org.xmlunit__xmlunit-legacy__2.10.0.json | 22,006 | 28 | 594,162 |
| io.kotest__kotest-runner-junit5-jvm__5.9.1.json | 20,990 | 28 | 566,730 |
| ch.qos.logback__logback-core__1.5.18.json | 112,372 | 6 | 561,860 |
| com.fasterxml.jackson.core__jackson-annotations__2.18.3.json | 19,251 | 30 | 558,279 |
| org.hamcrest__hamcrest__2.2.json | 20,570 | 28 | 555,390 |
| inline-usage.json | 34,602 | 17 | 553,632 |
| org.eclipse.jetty.toolchain__jetty-jakarta-servlet-api__5.0.2.json | 19,603 | 28 | 529,281 |
| io.kotest__kotest-common-jvm__5.9.1.json | 15,312 | 33 | 489,984 |
| org.eclipse.jetty__jetty-servlet__11.0.24.json | 17,822 | 28 | 481,194 |
| org.eclipse.jetty__jetty-security__11.0.24.json | 16,077 | 28 | 434,079 |
| org.jetbrains__annotations__23.0.0.json | 12,604 | 35 | 428,536 |
| org.eclipse.jetty__jetty-webapp__11.0.24.json | 15,480 | 28 | 417,960 |
| commons-fileupload__commons-fileupload__1.5.json | 14,711 | 28 | 397,197 |
| com.squareup.okhttp3__okhttp__4.12.0.json | 72,706 | 6 | 363,530 |
| org.apache.httpcomponents__httpclient__4.5.13.json | 112,112 | 4 | 336,336 |
| net.sf.jopt-simple__jopt-simple__5.0.4.json | 12,081 | 28 | 326,187 |
| typealias-usage.json | 17,971 | 18 | 305,507 |
| org.eclipse.jetty__jetty-servlets__11.0.24.json | 10,794 | 28 | 291,438 |
| io.kotest__kotest-extensions-jvm__5.9.1.json | 10,774 | 28 | 290,898 |
| org.eclipse.jetty__jetty-proxy__11.0.24.json | 10,635 | 28 | 287,145 |
| org.junit.platform__junit-platform-commons__1.8.2.json | 10,291 | 28 | 277,857 |
| org.javassist__javassist__3.28.0-GA.json | 88,627 | 4 | 265,881 |
| net.logstash.logback__logstash-logback-encoder__8.0.json | 85,661 | 4 | 256,983 |
| io.kotest__kotest-framework-discovery-jvm__5.9.1.json | 9,198 | 28 | 248,346 |
| io.kotest__kotest-assertions-api-jvm__5.9.1.json | 7,607 | 33 | 243,424 |
| io.projectreactor__reactor-core__3.7.0.json | 242,169 | 2 | 242,169 |
| inline-usage.json | 21,674 | 12 | 238,414 |
| io.mockk__mockk-jvm__1.13.17.json | 78,043 | 4 | 234,129 |
| io.arrow-kt__arrow-core-jvm__2.0.1.json | 32,270 | 8 | 225,890 |
| io.modelcontextprotocol__kotlin-sdk-jvm__0.3.0.json | 112,347 | 3 | 224,694 |
| io.ktor__ktor-client-core-jvm__3.0.2.json | 106,724 | 3 | 213,448 |
| exploded-jars.json | 213,242 | 2 | 213,242 |
| org.slf4j__slf4j-api__2.0.17.json | 12,225 | 18 | 207,825 |
| org.slf4j__slf4j-api__2.0.16.json | 12,164 | 17 | 194,624 |
| io.ktor__ktor-server-core-jvm__3.0.2.json | 97,246 | 3 | 194,492 |
| com.fasterxml.jackson.dataformat__jackson-dataformat-yaml__2.18.3.json | 7,061 | 28 | 190,647 |
| io.kotest__kotest-framework-concurrency-jvm__5.9.1.json | 7,024 | 28 | 189,648 |
| com.ethlo.time__itu__1.10.3.json | 6,932 | 28 | 187,164 |
| org.eclipse.jetty.http2__http2-server__11.0.24.json | 6,908 | 28 | 186,516 |
| io.mockk__mockk-dsl-jvm__1.13.17.json | 59,404 | 4 | 178,212 |
| com.google.errorprone__error_prone_annotations__2.36.0.json | 6,503 | 28 | 175,581 |
| org.apache.httpcomponents__httpcore__4.4.13.json | 57,928 | 4 | 173,784 |
| org.http4k__http4k-realtime-core__6.0.1.0.json | 24,031 | 8 | 168,217 |
| org.yaml__snakeyaml__2.4.json | 51,470 | 4 | 154,410 |
| com.fasterxml.jackson.module__jackson-module-kotlin__2.18.3.json | 30,135 | 6 | 150,675 |
| org.jetbrains__annotations__13.0.json | 7,458 | 21 | 149,160 |
| org.junit.platform__junit-platform-suite-api__1.8.2.json | 5,392 | 28 | 145,584 |
| org.eclipse.jetty.http2__http2-hpack__11.0.24.json | 5,027 | 28 | 135,729 |
| com.squareup.okio__okio-jvm__3.6.0.json | 25,747 | 6 | 128,735 |
| org.glassfish.jersey.core__jersey-client__3.0.8.json | 42,114 | 4 | 126,342 |
| com.github.ajalt__colormath__1.2.0.json | 4,487 | 28 | 121,149 |
| org.glassfish.hk2__hk2-api__3.0.3.json | 39,993 | 4 | 119,979 |
| com.google.j2objc__j2objc-annotations__3.0.0.json | 4,277 | 28 | 115,479 |
| io.ktor__ktor-http-jvm__3.0.2.json | 51,278 | 3 | 102,556 |
| com.github.ajalt__mordant__1.2.1.json | 3,694 | 28 | 99,738 |
| ch.qos.logback__logback-classic__1.5.18.json | 47,968 | 3 | 95,936 |
| org.eclipse.jetty__jetty-xml__11.0.24.json | 3,527 | 28 | 95,229 |
| com.github.scribejava__scribejava-core__8.3.1.json | 30,899 | 4 | 92,697 |
| org.http4k__http4k-format-core__6.0.1.0.json | 18,523 | 6 | 92,615 |
| io.ktor__ktor-utils-jvm__3.0.2.json | 45,372 | 3 | 90,744 |
| org.xmlunit__xmlunit-placeholders__2.10.0.json | 3,228 | 28 | 87,156 |
| jakarta.ws.rs__jakarta.ws.rs-api__3.0.0.json | 28,493 | 4 | 85,479 |
| com.github.jknack__handlebars-helpers__4.3.1.json | 3,076 | 28 | 83,052 |
| com.typesafe__config__1.4.3.json | 40,749 | 3 | 81,498 |
| io.ktor__ktor-io-jvm__3.0.2.json | 39,154 | 3 | 78,308 |
| com.github.ajalt.mordant__mordant-core-jvm__3.0.1.json | 78,098 | 2 | 78,098 |
| jakarta.xml.bind__jakarta.xml.bind-api__3.0.1.json | 23,248 | 4 | 69,744 |
| org.glassfish.hk2__hk2-locator__3.0.3.json | 22,281 | 4 | 66,843 |
| com.squareup.retrofit2__retrofit__2.9.0.json | 21,255 | 4 | 63,765 |
| com.github.ajalt.clikt__clikt-core-jvm__5.0.3.json | 61,863 | 2 | 61,863 |
| net.bytebuddy__byte-buddy-agent__1.14.17.json | 19,857 | 4 | 59,571 |
| io.ktor__ktor-network-jvm__3.0.2.json | 29,155 | 3 | 58,310 |
| org.glassfish.hk2__hk2-utils__3.0.3.json | 19,038 | 4 | 57,114 |
| org.jetbrains.kotlinx__kotlinx-serialization-core-jvm__1.8.0.json | 56,723 | 2 | 56,723 |
| org.opentest4j__opentest4j__1.2.0.json | 2,071 | 28 | 55,917 |
| org.http4k__http4k-format-jackson__6.0.1.0.json | 17,515 | 4 | 52,545 |
| io.ktor__ktor-network-tls-jvm__3.0.2.json | 24,607 | 3 | 49,214 |
| org.glassfish.jersey.ext__jersey-entity-filtering__3.0.8.json | 15,325 | 4 | 45,975 |
| com.squareup.okhttp3__okhttp__3.14.9.json | 45,863 | 2 | 45,863 |
| com.google.code.gson__gson__2.9.1.json | 45,317 | 2 | 45,317 |
| com.google.code.gson__gson__2.12.1.json | 45,304 | 2 | 45,304 |
| org.eclipse.jetty__jetty-alpn-java-server__11.0.24.json | 1,592 | 28 | 42,984 |
| inline-usage.json | 42,259 | 2 | 42,259 |
| org.eclipse.jetty__jetty-alpn-java-client__11.0.24.json | 1,511 | 28 | 40,797 |
| com.github.ajalt.colormath__colormath-jvm__3.6.0.json | 39,789 | 2 | 39,789 |
| io.ktor__ktor-websockets-jvm__3.0.2.json | 19,573 | 3 | 39,146 |
| service-loaders.json | 6,447 | 7 | 38,682 |
| artifacts.json | 9,625 | 5 | 38,500 |
| org.glassfish.jersey.media__jersey-media-json-jackson__3.0.8.json | 12,574 | 4 | 37,722 |
| typealias-usage.json | 3,140 | 13 | 37,680 |
| io.mockk__mockk-agent-jvm__1.13.17.json | 12,556 | 4 | 37,668 |
| org.jetbrains.kotlinx__kotlinx-serialization-json-jvm__1.8.0.json | 36,860 | 2 | 36,860 |
| org.glassfish.jersey.media__jersey-media-multipart__3.0.8.json | 11,848 | 4 | 35,544 |
| org.glassfish.jersey.inject__jersey-hk2__3.0.8.json | 11,668 | 4 | 35,004 |
| org.eclipse.jetty__jetty-alpn-server__11.0.24.json | 1,285 | 28 | 34,695 |
| inline-usage.json | 33,164 | 2 | 33,164 |
| org.jetbrains.kotlinx__kotlinx-io-core-jvm__0.5.4.json | 16,071 | 3 | 32,142 |
| inline-usage.json | 31,224 | 2 | 31,224 |
| org.eclipse.jetty__jetty-alpn-client__11.0.24.json | 1,155 | 28 | 31,185 |
| typealias-usage.json | 15,316 | 3 | 30,632 |
| org.objenesis__objenesis__3.3.json | 10,151 | 4 | 30,453 |
| inline-usage.json | 29,331 | 2 | 29,331 |
| io.ktor__ktor-http-cio-jvm__3.0.2.json | 14,616 | 3 | 29,232 |
| org.apiguardian__apiguardian-api__1.1.2.json | 1,079 | 28 | 29,133 |
| org.jvnet.mimepull__mimepull__1.9.13.json | 9,381 | 4 | 28,143 |
| io.mockk__mockk-agent-api-jvm__1.13.17.json | 8,836 | 4 | 26,508 |
| com.squareup.okio__okio-jvm__3.7.0.json | 25,873 | 2 | 25,873 |
| inline-usage.json | 25,437 | 2 | 25,437 |
| com.segment.analytics.java__analytics-core__3.5.1.json | 8,418 | 4 | 25,254 |
| com.sun.activation__jakarta.activation__2.0.1.json | 8,314 | 4 | 24,942 |
| com.google.guava__failureaccess__1.0.2.json | 913 | 28 | 24,651 |
| io.ktor__ktor-server-cio-jvm__3.0.2.json | 12,099 | 3 | 24,198 |
| io.ktor__ktor-client-cio-jvm__3.0.2.json | 11,822 | 3 | 23,644 |
| commons-logging__commons-logging__1.2.json | 7,787 | 4 | 23,361 |
| typealias-usage.json | 21,709 | 2 | 21,709 |
| com.squareup.moshi__moshi__1.15.2.json | 20,747 | 2 | 20,747 |
| dev.forkhandles__values4k__2.20.0.0.json | 19,169 | 2 | 19,169 |
| org.hamcrest__hamcrest-core__2.2.json | 692 | 28 | 18,684 |
| org.http4k__http4k-client-okhttp__6.0.1.0.json | 3,714 | 6 | 18,570 |
| io.arrow-kt__arrow-atomic-jvm__2.0.1.json | 2,490 | 8 | 17,430 |
| org.glassfish.hk2.external__aopalliance-repackaged__3.0.3.json | 5,790 | 4 | 17,370 |
| org.glassfish.jersey.connectors__jersey-apache-connector__3.0.8.json | 5,749 | 4 | 17,247 |
| service-loaders.json | 1,510 | 12 | 16,610 |
| typealias-usage.json | 16,444 | 2 | 16,444 |
| com.google.guava__listenablefuture__9999.0-empty-to-avoid-conflict-with-guava.json | 550 | 28 | 14,850 |
| com.fasterxml.jackson.module__jackson-module-jakarta-xmlbind-annotations__2.18.3.json | 4,555 | 4 | 13,665 |
| org.http4k__http4k-format-moshi__6.0.1.0.json | 13,407 | 2 | 13,407 |
| io.ktor__ktor-server-websockets-jvm__3.0.2.json | 6,663 | 3 | 13,326 |
| jakarta.annotation__jakarta.annotation-api__2.1.0.json | 4,031 | 4 | 12,093 |
| org.openapitools__jackson-databind-nullable__0.2.3.json | 3,977 | 4 | 11,931 |
| artifacts.json | 10,041 | 2 | 10,041 |
| service-loaders.json | 4,938 | 3 | 9,876 |
| org.glassfish.hk2__osgi-resource-locator__1.0.3.json | 3,289 | 4 | 9,867 |
| io.arrow-kt__arrow-annotations-jvm__2.0.1.json | 1,302 | 8 | 9,114 |
| typealias-usage.json | 4,503 | 3 | 9,006 |
| org.jetbrains.kotlinx__kotlinx-coroutines-core__1.10.1.json | 263 | 35 | 8,942 |
| declarations.json | 2,868 | 4 | 8,604 |
| org.jetbrains.kotlinx__kotlinx-coroutines-test__1.10.1.json | 263 | 33 | 8,416 |
| io.ktor__ktor-serialization-jvm__3.0.2.json | 4,170 | 3 | 8,340 |
| com.squareup.okio__okio__1.17.2.json | 8,276 | 2 | 8,276 |
| service-loaders.json | 7,787 | 2 | 7,787 |
| io.kotest__kotest-assertions-shared__5.9.1.json | 240 | 33 | 7,680 |
| org.http4k__http4k-connect-core__6.0.1.0.json | 7,602 | 2 | 7,602 |
| io.kotest__kotest-assertions-api__5.9.1.json | 234 | 33 | 7,488 |
| com.google.auto.value__auto-value-annotations__1.10.1.json | 2,485 | 4 | 7,455 |
| io.kotest__kotest-framework-api__5.9.1.json | 232 | 33 | 7,424 |
| io.kotest__kotest-common__5.9.1.json | 218 | 33 | 6,976 |
| typealias-usage.json | 6,878 | 2 | 6,878 |
| io.kotest__kotest-assertions-core__5.9.1.json | 236 | 30 | 6,844 |
| org.jetbrains.kotlinx__kotlinx-io-bytestring-jvm__0.5.4.json | 3,414 | 3 | 6,828 |
| service-loaders.json | 6,741 | 2 | 6,741 |
| io.kotest__kotest-framework-concurrency__5.9.1.json | 248 | 28 | 6,696 |
| io.kotest__kotest-framework-discovery__5.9.1.json | 244 | 28 | 6,588 |
| org.http4k__http4k-api-jsonrpc__6.0.1.0.json | 6,453 | 2 | 6,453 |
| io.ktor__ktor-server-sse-jvm__3.0.2.json | 3,219 | 3 | 6,438 |
| io.kotest__kotest-framework-engine__5.9.1.json | 238 | 28 | 6,426 |
| com.segment.analytics.java__analytics__3.5.1.json | 6,340 | 2 | 6,340 |
| io.kotest__kotest-runner-junit5__5.9.1.json | 232 | 28 | 6,264 |
| io.kotest__kotest-extensions__5.9.1.json | 226 | 28 | 6,102 |
| bundled-traces.json | 419 | 15 | 5,866 |
| service-loaders.json | 5,717 | 2 | 5,717 |
| service-loaders.json | 4,938 | 2 | 4,938 |
| jakarta.inject__jakarta.inject-api__2.0.1.json | 1,608 | 4 | 4,824 |
| com.github.ajalt.clikt__clikt-jvm__5.0.3.json | 4,410 | 2 | 4,410 |
| se.ansman.kotshi__api__3.0.0.json | 4,173 | 2 | 4,173 |
| com.squareup.retrofit2__retrofit-mock__2.9.0.json | 3,793 | 2 | 3,793 |
| org.jetbrains.kotlin__kotlin-stdlib-jdk8__2.1.10.json | 465 | 9 | 3,720 |
| org.jetbrains.kotlin__kotlin-stdlib-jdk7__2.1.10.json | 465 | 9 | 3,720 |
| dev.forkhandles__result4k__2.20.0.0.json | 3,625 | 2 | 3,625 |
| dev.forkhandles__time4k__2.20.0.0.json | 3,498 | 2 | 3,498 |
| bundled-traces.json | 1,646 | 3 | 3,292 |
| org.reactivestreams__reactive-streams__1.0.4.json | 3,170 | 2 | 3,170 |
| artifacts.json | 1,029 | 4 | 3,087 |
| io.ktor__ktor-websocket-serialization-jvm__3.0.2.json | 1,531 | 3 | 3,062 |
| org.slf4j__jul-to-slf4j__2.0.17.json | 1,002 | 4 | 3,006 |
| declarations.json | 2,985 | 2 | 2,985 |
| com.github.scribejava__scribejava-java8__8.3.1.json | 995 | 4 | 2,985 |
| io.ktor__ktor-events-jvm__3.0.2.json | 1,463 | 3 | 2,926 |
| io.mockk__mockk-core-jvm__1.13.17.json | 928 | 4 | 2,784 |
| org.http4k__http4k-platform-core__6.0.1.0.json | 2,709 | 2 | 2,709 |
| com.squareup.okhttp3__logging-interceptor__4.10.0.json | 2,492 | 2 | 2,492 |
| io.ktor__ktor-sse-jvm__3.0.2.json | 1,124 | 3 | 2,248 |
| bundled-traces.json | 2,125 | 2 | 2,125 |
| com.squareup.moshi__moshi-kotlin__1.15.2.json | 2,096 | 2 | 2,096 |
| com.squareup.okio__okio__3.6.0.json | 397 | 6 | 1,985 |
| io.arrow-kt__arrow-annotations__2.0.1.json | 230 | 8 | 1,610 |
| io.arrow-kt__arrow-atomic__2.0.1.json | 220 | 8 | 1,540 |
| com.squareup.retrofit2__converter-gson__2.9.0.json | 1,532 | 2 | 1,532 |
| org.jetbrains.kotlin__kotlin-stdlib-common__2.1.10.json | 255 | 7 | 1,530 |
| io.arrow-kt__arrow-core__2.0.1.json | 216 | 8 | 1,512 |
| artifacts.json | 1,445 | 2 | 1,445 |
| com.segment.backo__backo__1.0.0.json | 1,214 | 2 | 1,214 |
| io.mockk__mockk-agent-api__1.13.17.json | 222 | 4 | 666 |
| io.mockk__mockk-agent__1.13.17.json | 214 | 4 | 642 |
| io.mockk__mockk-core__1.13.17.json | 212 | 4 | 636 |
| io.mockk__mockk-dsl__1.13.17.json | 210 | 4 | 630 |
| io.mockk__mockk__1.13.17.json | 202 | 4 | 606 |
| org.jetbrains.kotlinx__kotlinx-io-bytestring__0.5.4.json | 258 | 3 | 516 |
| com.github.ajalt.mordant__mordant-jvm__3.0.1.json | 509 | 2 | 509 |
| org.jetbrains.kotlinx__kotlinx-io-core__0.5.4.json | 246 | 3 | 492 |
| io.ktor__ktor-websocket-serialization__3.0.2.json | 244 | 3 | 488 |
| io.modelcontextprotocol__kotlin-sdk__0.3.0.json | 240 | 3 | 480 |
| io.ktor__ktor-server-websockets__3.0.2.json | 232 | 3 | 464 |
| io.ktor__ktor-serialization__3.0.2.json | 224 | 3 | 448 |
| io.ktor__ktor-client-core__3.0.2.json | 220 | 3 | 440 |
| io.ktor__ktor-network-tls__3.0.2.json | 220 | 3 | 440 |
| io.ktor__ktor-server-core__3.0.2.json | 220 | 3 | 440 |
| io.ktor__ktor-client-cio__3.0.2.json | 218 | 3 | 436 |
| io.ktor__ktor-websockets__3.0.2.json | 218 | 3 | 436 |
| io.ktor__ktor-server-sse__3.0.2.json | 218 | 3 | 436 |
| io.ktor__ktor-server-cio__3.0.2.json | 218 | 3 | 436 |
| io.ktor__ktor-http-cio__3.0.2.json | 214 | 3 | 428 |
| io.ktor__ktor-network__3.0.2.json | 212 | 3 | 424 |
| io.ktor__ktor-events__3.0.2.json | 210 | 3 | 420 |
| io.ktor__ktor-utils__3.0.2.json | 208 | 3 | 416 |
| io.ktor__ktor-http__3.0.2.json | 206 | 3 | 412 |
| io.ktor__ktor-sse__3.0.2.json | 204 | 3 | 408 |
| io.ktor__ktor-io__3.0.2.json | 202 | 3 | 404 |
| org.jetbrains.kotlinx__kotlinx-serialization-json__1.8.0.json | 268 | 2 | 268 |
| org.jetbrains.kotlinx__kotlinx-serialization-core__1.8.0.json | 268 | 2 | 268 |
| com.github.ajalt.mordant__mordant-core__3.0.1.json | 246 | 2 | 246 |
| com.github.ajalt.colormath__colormath__3.6.0.json | 244 | 2 | 244 |
| com.github.ajalt.clikt__clikt-core__5.0.3.json | 238 | 2 | 238 |
| com.github.ajalt.mordant__mordant__3.0.1.json | 236 | 2 | 236 |
| com.github.ajalt.clikt__clikt__5.0.3.json | 228 | 2 | 228 |
| com.squareup.okio__okio__3.7.0.json | 216 | 2 | 216 |
| Total | 155,701,662 | 0 | 142,061,248 |
Script I used to generate this table: https://gist.github.com/Mahoney/857eadbef4c8763dfc26d3ac03ac2369
Thanks for the analysis. I think such an effort would be on the larger side, and run into issues of concurrent access, be difficult to manage in an isolated-projects safe way, and also I'm not sure offhand how to make it work with Windows (re symlinks). On the subject of concurrent access, I think we'd then be trading performance for disk space, and I'm not sure that's a good trade. On the other hand, avoiding some duplicate IO might also improve performance -- it's not easy to say if it's worth it.
Completely by accident, I ran into a bug that I just fixed, and this might end up reducing disk usage by eliminating some duplication in the dependencies/ dirs: https://github.com/autonomousapps/dependency-analysis-gradle-plugin/pull/1405
Saved 1Mb for me