Skip to content

Instantly share code, notes, and snippets.

@arindamxd
Last active October 6, 2020 06:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arindamxd/8b233d2cf6240be86c4b84dea9eb67db to your computer and use it in GitHub Desktop.
Save arindamxd/8b233d2cf6240be86c4b84dea9eb67db to your computer and use it in GitHub Desktop.
List Configuration Dependency Size
// List Release Configuration Dependencies
tasks.create("dependency-size-all") {
configurations.each {
if (it.isCanBeResolved()) {
listConfigurationDependencies(it)
}
}
}
project.afterEvaluate {
tasks.create("dependency-size-release") {
configurations.each {
if (it.isCanBeResolved() && it.name.contains("ReleaseCompileClasspath")) {
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)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment