Skip to content

Instantly share code, notes, and snippets.

@medvedev
Last active October 23, 2023 16:56
Show Gist options
  • Save medvedev/968119d7786966d9ed4442ae17aca279 to your computer and use it in GitHub Desktop.
Save medvedev/968119d7786966d9ed4442ae17aca279 to your computer and use it in GitHub Desktop.
Gradle task that prints total dependencies size and (dependency+(size in kb)) list sorted by size desc
...
/* Tested with Gradle 6.3 */
tasks.register("depsize") {
description = 'Prints dependencies for "default" configuration'
doLast() {
listConfigurationDependencies(configurations.default)
}
}
tasks.register("depsize-all-configurations") {
description = 'Prints dependencies for all available configurations'
doLast() {
configurations
.findAll { it.isCanBeResolved() }
.each { listConfigurationDependencies(it) }
}
}
def listConfigurationDependencies(Configuration configuration) {
def formatStr = "%,10.2f"
def size = configuration.collect { it.length() / (1024 * 1024) }.sum()
def out = new StringBuffer()
out << "\nConfiguration name: \"${configuration.name}\"\n"
if (size) {
out << 'Total dependencies size:'.padRight(65)
out << "${String.format(formatStr, size)} Mb\n\n"
configuration.sort { -it.length() }
.each {
out << "${it.name}".padRight(65)
out << "${String.format(formatStr, (it.length() / 1024))} kb\n"
}
} else {
out << 'No dependencies found';
}
println(out)
}
...
@Arkhypov
Copy link

configurations["default"].isCanBeResolved = true

on the top of build.gradle.kts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment