Closed vlsi closed 2 years ago
Thank you for the interesting idea. I have a related issue that I'm actively working on right now at https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/251. While working on that, I'll consider ways to include this size information.
super cool idea! Was there any progress on it?
super cool idea! Was there any progress on it?
nope!
Is that a dominator tree of dependencies with jar sizes in human-readable units I see?!
WOW!
Frankly speaking, I find automatic units hard to reason since 10 MB
is way more important that 10 KB
.
What do you think if the root element determines the unit, and then all the nodes use it?
I see you print $selfSize ($totalSize)
, however, it looks awkward to me. I don't really care how much the library takes itself. The most important questions is like "how much could I save if I remove androidx.fragment:frament
. In that case, the dominated size should be the first, and the self size should be in brackets.
What do you think if the root element determines the unit, and then all the nodes use it?
interesting idea! I'll give it a try and see what it looks like. I can also reverse the order of what's in parentheses.
@vlsi how about this
4.26 MB :app
+--- 4.26 MB (1.47 MB) androidx.appcompat:appcompat:1.1.0
| +--- (0.02 MB) androidx.cursoradapter:cursoradapter:1.0.0
| +--- (0.04 MB) androidx.collection:collection:1.1.0
| +--- (0.02 MB) androidx.lifecycle:lifecycle-common:2.1.0
| +--- (0.01 MB) androidx.arch.core:core-common:2.1.0
| +--- (0.06 MB) androidx.drawerlayout:drawerlayout:1.0.0
| +--- (0.02 MB) androidx.annotation:annotation:1.1.0
| +--- 0.33 MB (0.15 MB) androidx.appcompat:appcompat-resources:1.1.0
| | +--- 0.09 MB (0.08 MB) androidx.vectordrawable:vectordrawable-animated:1.1.0
| | | \--- (0.01 MB) androidx.interpolator:interpolator:1.0.0
| | \--- (0.08 MB) androidx.vectordrawable:vectordrawable:1.1.0
| +--- 1.46 MB (1.39 MB) androidx.core:core:1.1.0
| | \--- (0.06 MB) androidx.versionedparcelable:versionedparcelable:1.1.0
| +--- 0.69 MB (0.38 MB) androidx.fragment:fragment:1.1.0
| | +--- (0.01 MB) androidx.lifecycle:lifecycle-viewmodel:2.1.0
| | +--- 0.05 MB (0.03 MB) androidx.activity:activity:1.0.0
| | | \--- (0.01 MB) androidx.savedstate:savedstate:1.0.0
| | +--- (0.11 MB) androidx.viewpager:viewpager:1.0.0
| | +--- 0.12 MB (0.08 MB) androidx.loader:loader:1.0.0
| | | +--- 0.04 MB (0.01 MB) androidx.lifecycle:lifecycle-livedata:2.0.0
| | | | +--- (0 MB) androidx.arch.core:core-runtime:2.0.0
| | | | \--- (0.01 MB) androidx.lifecycle:lifecycle-livedata-core:2.0.0
| +--- (0.01 MB) androidx.lifecycle:lifecycle-runtime:2.1.0
| \--- (0.07 MB) androidx.customview:customview:1.0.0
\--- (0 MB) :lib
I like it.
What do you think if print size like 0.02 MB androidx.cursoradapter:cursoradapter:1.0.0
instead of (0.02)..
?
It looks like the excessive parenthesis could be removed.
Can I try the tree? :) (or would you please try showing the tree for org.jacoco:org.jacoco.core:0.8.5?)
By the way, I guess the dependencies should be sorted from biggest to smallest
I'm using the parentheses to indicate it's for this dependency. If an element only has a number in parentheses, that just means it doesn't dominate anything. I guess it could be tweaked.
Sorting is a whole other can of worms. I'm pushing the PR now. You're welcome to take a look, give it a try, and propose improvements.
Ok, I managed to get it running, however, I added a standalone test (I have no Android SDK, so running tests that rely on Android is problematic for me).
import com.autonomousapps.utils.runner
import org.gradle.util.GradleVersion
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.io.TempDir
import java.io.File
class DominatorTreeTest {
@TempDir
lateinit var projectDir: File
@Test
fun test(){
projectDir.resolve("build.gradle").writeText(
"""
plugins {
id 'java-library'
id 'com.autonomousapps.dependency-analysis'
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.apache.calcite:calcite-core:1.21.0")
}
""".trimIndent()
)
runner(GradleVersion.version("7.4.2"), projectDir, "printDominatorTreeMain").withPluginClasspath().build()
}
}
17.05 MB :
+--- 17.05 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
| +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
| | +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
| | +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
| | +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
| | \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
| +--- 2.2 MB com.google.guava:guava:19.0
| +--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
| +--- 0.8 MB org.codehaus.janino:janino:3.0.11
| +--- 0.47 MB org.apache.commons:commons-lang3:3.8
| +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
| | \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
| +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
| +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
| | \--- 0.28 MB org.yaml:snakeyaml:1.23
| +--- 0.32 MB commons-codec:commons-codec:1.12
| +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
| | \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
| +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
| +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
| | \--- 0.24 MB commons-lang:commons-lang:2.4
| +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
| +--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9
| +--- 0.05 MB commons-logging:commons-logging:1.2
| +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
| \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11
I would suggest avoid .stripTrailingZeros()
in com.autonomousapps.internal.utils.FileUtils#byteCountToDisplaySize(java.math.BigDecimal, com.autonomousapps.internal.utils.FileUtils.Scale)
so 0.8 MB org.codehaus.janino:janino:3.0.11
would be like 0.80 MB org.codehaus.janino:janino:3.0.11
and it would be aligned with the rest:
17.05 MB :
+--- 17.05 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
| +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
| | +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
| | +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
| | +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
| | \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
| +--- 2.20 MB com.google.guava:guava:19.0
| +--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
| +--- 0.80 MB org.codehaus.janino:janino:3.0.11
| +--- 0.47 MB org.apache.commons:commons-lang3:3.8
| +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
| | \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
| +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
| +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
| | \--- 0.28 MB org.yaml:snakeyaml:1.23
| +--- 0.32 MB commons-codec:commons-codec:1.12
| +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
| | \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
| +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
| +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
| | \--- 0.24 MB commons-lang:commons-lang:2.4
| +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
| +--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9
| +--- 0.05 MB commons-logging:commons-logging:1.2
| +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
| \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11
Then suppose my project depends on both calcite-core
, guava
, and jackson-databind
.
dependencies {
implementation("org.apache.calcite:calcite-core:1.21.0")
implementation("com.google.guava:guava:19.0")
implementation("com.fasterxml.jackson.core:jackson-databind:2.9.9.3")
}
The output becomes:
17.05 MB :
+--- 13.19 MB (4.81 MB) org.apache.calcite:calcite-core:1.21.0
| +--- 3.66 MB (1.24 MB) org.apache.calcite.avatica:avatica-core:1.15.0
| | +--- 1.35 MB com.google.protobuf:protobuf-java:3.6.1
| | +--- 0.73 MB org.apache.httpcomponents:httpclient:4.5.6
| | +--- 0.31 MB org.apache.httpcomponents:httpcore:4.4.10
| | \--- 0.01 MB org.apache.calcite.avatica:avatica-metrics:1.15.0
| +--- 0.88 MB com.esri.geometry:esri-geometry-api:2.2.0
| +--- 0.80 MB org.codehaus.janino:janino:3.0.11
| +--- 0.47 MB org.apache.commons:commons-lang3:3.8
| +--- 0.46 MB (0.43 MB) com.yahoo.datasketches:sketches-core:0.9.0
| | \--- 0.02 MB com.yahoo.datasketches:memory:0.9.0
| +--- 0.46 MB org.apache.calcite:calcite-linq4j:1.21.0
| +--- 0.32 MB (0.04 MB) com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9
| | \--- 0.28 MB org.yaml:snakeyaml:1.23
| +--- 0.32 MB commons-codec:commons-codec:1.12
| +--- 0.32 MB (0.19 MB) org.apache.commons:commons-dbcp2:2.6.0
| | \--- 0.12 MB org.apache.commons:commons-pool2:2.6.1
| +--- 0.29 MB (0.04 MB) net.hydromatic:aggdesigner-algorithm:6.0
| | \--- 0.24 MB commons-lang:commons-lang:2.4
| +--- 0.21 MB com.jayway.jsonpath:json-path:2.4.0
| +--- 0.05 MB commons-logging:commons-logging:1.2
| +--- 0.03 MB org.slf4j:slf4j-api:1.7.25
| \--- 0.03 MB org.codehaus.janino:commons-compiler:3.0.11
+--- 2.20 MB com.google.guava:guava:19.0
+--- 1.28 MB com.fasterxml.jackson.core:jackson-databind:2.9.9.3
+--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
\--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.9
It kind of makes sense:
calcite-core
, I would remove 13.19 worth of dependencies, and guava
, etc would still be therejackson-core
and jackson-annotations
are printed separately, because, well, they are not dominated by jackson-databind
alone. In the input config, -core
and -annotations
are used by both "direct dependency on jackson-databindfrom
implementationand by transitive dependency from
calcite-core`. So the output is OK even though it might be not that obvious from the first glance.Just in case, here's a sample with just jackson-databind
dependencies {
//implementation("org.apache.calcite:calcite-core:1.21.0")
//implementation("com.google.guava:guava:19.0")
implementation("com.fasterxml.jackson.core:jackson-databind:2.9.9.3")
}
> Task :printDominatorTreeMain
1.65 MB :
+--- 1.65 MB (1.28 MB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 0.31 MB com.fasterxml.jackson.core:jackson-core:2.9.9
| \--- 0.06 MB com.fasterxml.jackson.core:jackson-annotations:2.9.0
> Task :dependencies
------------------------------------------------------------
Root project 'junit14618342795805391501'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
\--- com.fasterxml.jackson.core:jackson-databind:2.9.9.3
+--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
\--- com.fasterxml.jackson.core:jackson-core:2.9.9
Regarding com.autonomousapps.internal.utils.FileUtils#getScale(java.math.BigDecimal)
I would suggest something like 4 or 5 as a flip point for the base unit calculation.
In other words, 6.0 MiB
is ok as megabytes, however, it would probably make sense to use 1699.74 KB
instead of 1.65 MiB
.
For example, I think the following output is slightly better than 1.65 M
, however, I would like to hear what you think.
1699.74 KB :
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
| \--- 64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0
3954.15 KB :
+--- 2254.41 KB com.google.guava:guava:19.0
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
| \--- 64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0
By the way, it would be great to right-align all the numbers as follows. I believe it is super-easy to do when all the number have the same units. You check the width of the "size label" length of the first element in the tree, and then use it to pad the siblings. For example, 318.00
is 6 chars, so you pad 64.95
to 6 chars
3954.15 KB :
+--- 2254.41 KB com.google.guava:guava:19.0
+--- 1699.74 KB (1316.78 KB) com.fasterxml.jackson.core:jackson-databind:2.9.9.3
| +--- 318.00 KB com.fasterxml.jackson.core:jackson-core:2.9.9
| \--- 64.95 KB com.fasterxml.jackson.core:jackson-annotations:2.9.0
If you use 1024
for the unit fraction, then the units should probably be KiB
, MiB
, GiB
, and so on: https://en.wikipedia.org/wiki/Byte#Multiple-byte_units
It looks like the dominator tree misses some of the dependencies.
For instance, com.github.weisj
, org.apache.tika
, etc are completely missing
implementation("org.apache.jmeter:ApacheJMeter_core:5.4.3")
See https://repo1.maven.org/maven2/org/apache/jmeter/ApacheJMeter_core/5.4.3/ApacheJMeter_core-5.4.3.pom
> Task :printDominatorTreeMain
15.03 MB :
+--- 15.03 MB (1.67 MB) org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- 5.25 MB net.sf.saxon:Saxon-HE:9.9.1-8
| +--- 3.45 MB (3.00 MB) xalan:xalan:2.7.2
| | +--- 0.44 MB (0.26 MB) xalan:serializer:2.7.2
| | | \--- 0.18 MB xml-apis:xml-apis:1.3.04
| +--- 1.70 MB org.apache.logging.log4j:log4j-core:2.17.0
| +--- 1.14 MB com.fifesoft:rsyntaxtextarea:3.1.1
| +--- 0.62 MB (0.59 MB) com.thoughtworks.xstream:xstream:1.4.15
| | +--- 0.02 MB xpp3:xpp3_min:1.1.4c
| | \--- 0.00 MB xmlpull:xmlpull:1.1.3.1
| +--- 0.28 MB org.apache.logging.log4j:log4j-api:2.17.0
| +--- 0.23 MB net.sf.jtidy:jtidy:r938
| +--- 0.19 MB org.apache.logging.log4j:log4j-1.2-api:2.17.0
| +--- 0.16 MB org.apache.jmeter:jorphan:5.4.3
| +--- 0.14 MB (0.10 MB) bsf:bsf:2.4.0
| | \--- 0.03 MB commons-logging:commons-logging:1.0.4
| +--- 0.06 MB oro:oro:2.0.8
| +--- 0.03 MB org.slf4j:slf4j-api:1.7.30
| +--- 0.02 MB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| +--- 0.01 MB org.apache.jmeter:ApacheJMeter:5.4.3
| \--- 0.00 MB org.apiguardian:apiguardian-api:1.1.0
> Task :dependencies
------------------------------------------------------------
Root project 'junit2722563613273408154'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
\--- org.apache.jmeter:ApacheJMeter_core:5.4.3
+--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
+--- com.fasterxml.jackson.core:jackson-core:2.10.5
+--- com.fasterxml.jackson.core:jackson-databind:2.10.5
| +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| \--- com.fasterxml.jackson.core:jackson-core:2.10.5
+--- com.formdev:svgSalamander:1.1.2.3
+--- com.github.ben-manes.caffeine:caffeine:2.8.8
| +--- org.checkerframework:checker-qual:3.8.0
| \--- com.google.errorprone:error_prone_annotations:2.4.0
+--- com.github.weisj:darklaf-core:2.5.4
| +--- com.github.weisj:darklaf-theme:2.5.4
| | +--- com.github.weisj:darklaf-property-loader:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | \--- com.formdev:svgSalamander:1.1.2.3
| | \--- com.github.weisj:darklaf-utils:2.5.4
| +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| +--- com.github.weisj:darklaf-utils:2.5.4
| +--- com.github.weisj:darklaf-native-utils:2.5.4
| +--- com.github.weisj:darklaf-platform-base:2.5.4
| +--- com.github.weisj:darklaf-windows:2.5.4
| | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | +--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | \--- net.java.dev.jna:jna:5.5.0
| +--- com.github.weisj:darklaf-macos:2.5.4
| | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | +--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| +--- org.swinglabs:jxlayer:3.0.4
| \--- com.formdev:svgSalamander:1.1.2.3
+--- com.github.weisj:darklaf-theme:2.5.4 (*)
+--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
+--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
+--- com.miglayout:miglayout-swing:5.2
| \--- com.miglayout:miglayout-core:5.2
+--- commons-codec:commons-codec:1.15
+--- commons-collections:commons-collections:3.2.2
+--- org.apache.commons:commons-collections4:4.4
+--- org.apache.commons:commons-math3:3.6.1
+--- org.apache.commons:commons-text:1.9
| \--- org.apache.commons:commons-lang3:3.11
+--- org.apache.tika:tika-core:1.24.1
+--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
| +--- commons-io:commons-io:1.3.1 -> 2.8.0
| \--- commons-logging:commons-logging:1.0.4
+--- org.freemarker:freemarker:2.3.30
+--- org.jodd:jodd-core:5.0.13
+--- org.jodd:jodd-props:5.0.13
| \--- org.jodd:jodd-core:5.0.13
+--- org.mozilla:rhino:1.7.13
+--- org.slf4j:jcl-over-slf4j:1.7.30
| \--- org.slf4j:slf4j-api:1.7.30
+--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter:5.4.3
| \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
+--- org.apache.jmeter:jorphan:5.4.3
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.commons:commons-math3:3.6.1
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apiguardian:apiguardian-api:1.1.0
| \--- org.slf4j:slf4j-api:1.7.30
+--- bsf:bsf:2.4.0
| \--- commons-logging:commons-logging:1.0.4
+--- com.fifesoft:rsyntaxtextarea:3.1.1
+--- net.sf.jtidy:jtidy:r938
+--- com.thoughtworks.xstream:xstream:1.4.15
| +--- xmlpull:xmlpull:1.1.3.1
| \--- xpp3:xpp3_min:1.1.4c
+--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
| \--- org.apache.logging.log4j:log4j-api:2.17.0
+--- org.apache.logging.log4j:log4j-api:2.17.0
+--- org.apache.logging.log4j:log4j-core:2.17.0
| \--- org.apache.logging.log4j:log4j-api:2.17.0
+--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| +--- org.apache.logging.log4j:log4j-api:2.17.0
| \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
+--- org.apiguardian:apiguardian-api:1.1.0
+--- oro:oro:2.0.8
+--- xalan:xalan:2.7.2
| \--- xalan:serializer:2.7.2
| \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
+--- net.sf.saxon:Saxon-HE:9.9.1-8
+--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-dateutil:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-datetime:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-jmx:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-json:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-jsr223:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-sql:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.codehaus.groovy:groovy-templates:3.0.7
| +--- org.codehaus.groovy:groovy:3.0.7
| \--- org.codehaus.groovy:groovy-xml:3.0.7
| \--- org.codehaus.groovy:groovy:3.0.7
+--- org.apache.tika:tika-parsers:1.24.1
+--- xerces:xercesImpl:2.12.0
| \--- xml-apis:xml-apis:1.4.01
\--- xml-apis:xml-apis:1.4.01
One more thing: I would expect that printDependencyDominators
would behave similar to the existing dependencies
task.
In other words, I would expect something like printDependencyDominators --configuration runtimeClasspath
or printDependencyDominators --configuration testRuntimeClasspath
.
@vlsi I have rewritten the DominanceTree
class from scratch using an entirely different algorithm and no prior art. GPL issues begone!
I haven't yet made any effort to investigate any other issues you raised. If you have a chance to test it out and let me know if you still see "missing" dependencies, I'd appreciate it.
Regarding the missing dependencies, it might be due to this:
> Task :printDominatorTreeMain
...
> Task :dependencies
------------------------------------------------------------
Root project 'junit2722563613273408154'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
The :printDominatorTreeMain
task as currently written uses the compile classpath. Your :dependencies
invocation printed the runtime classpath. Those are probably just different in your case.
The :printDominatorTreeMain task as currently written uses the compile classpath. Your :dependencies invocation printed the runtime classpath. Those are probably just different in your case.
Yeah, that was indeed the reason.
It would be great if the configuration could be customized.
I just did a quick test with runtimeClasspath
(I replaced dependencyAnalyzer.compileConfigurationName
with dependencyAnalyzer.runtimeConfigurationName
), and it looks something is not quite right with the dominatror tree:
Watch for net.java.dev.jna:jna
.
I would expect it to appear on a top level (side by side with org.jetbrains.kotlin:kotlin-compiler-embeddable
and org.apache.jmeter:ApacheJMeter_core
) because both of them use jna
, so neither of them dominates it.
However jna
is rendered as | | | \--- 1.44 MiB net.java.dev.jna:jna:5.6.0
> Task :printDominatorTreeMain
98.18 MiB :
+--- 55.99 MiB (50.08 MiB) org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.0
| +--- 2.97 MiB org.jetbrains.kotlin:kotlin-reflect:1.7.0
| +--- 1.66 MiB (1.45 MiB) org.jetbrains.kotlin:kotlin-stdlib:1.7.0
| | +--- 0.19 MiB org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0
| | \--- 0.02 MiB org.jetbrains:annotations:13.0
| +--- 0.69 MiB org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.0
| +--- 0.55 MiB org.jetbrains.intellij.deps:trove4j:1.0.20200330
| \--- 0.04 MiB org.jetbrains.kotlin:kotlin-script-runtime:1.7.0
+--- 40.75 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
| +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
| +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
| | \--- 0.26 MiB xalan:serializer:2.7.2
| +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
| +--- 1.89 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
| | +--- 0.32 MiB com.github.weisj:darklaf-windows:2.5.4
| | +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
| | +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
| | +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
| | \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
| +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
| +--- 1.62 MiB org.freemarker:freemarker:2.3.30
| +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
| +--- 1.32 MiB xerces:xercesImpl:2.12.0
| +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
| +--- 1.25 MiB org.mozilla:rhino:1.7.13
| +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
| +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
| | \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
| +--- 0.72 MiB org.apache.commons:commons-collections4:4.4
| +--- 0.68 MiB org.apache.tika:tika-core:1.24.1
| +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
| +--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
| | +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
| | \--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
| +--- 0.56 MiB commons-collections:commons-collections:3.2.2
| | \--- 0.55 MiB org.apache.commons:commons-lang3:3.11
| +--- 0.38 MiB org.jodd:jodd-core:5.0.13
| +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
| | \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
| +--- 0.34 MiB commons-codec:commons-codec:1.15
| +--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
| +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
| | \--- 0.27 MiB commons-io:commons-io:2.8.0
| +--- 0.24 MiB net.sf.jtidy:jtidy:r938
| +--- 0.21 MiB xml-apis:xml-apis:1.4.01
| +--- 0.21 MiB org.apache.commons:commons-text:1.9
| +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
| +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
| +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
| +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
| +--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
| | \--- 0.10 MiB com.miglayout:miglayout-core:5.2
| +--- 0.11 MiB bsf:bsf:2.4.0
| +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
| +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
| +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
| +--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
| +--- 0.06 MiB oro:oro:2.0.8
| | +--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
| | +--- 0.04 MiB org.slf4j:slf4j-api:1.7.30
| | \--- 0.04 MiB commons-logging:commons-logging:1.0.4
| +--- 0.02 MiB org.jodd:jodd-props:5.0.13
| +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
| +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
| +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
| +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
| +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
| +--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
| | | \--- 1.44 MiB net.java.dev.jna:jna:5.6.0
> Task :dependencies
------------------------------------------------------------
Root project 'junit11727857352436424294'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| +--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| | \--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- org.checkerframework:checker-qual:3.8.0
| | \--- com.google.errorprone:error_prone_annotations:2.4.0
| +--- com.github.weisj:darklaf-core:2.5.4
| | +--- com.github.weisj:darklaf-theme:2.5.4
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4
| | | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | | \--- com.formdev:svgSalamander:1.1.2.3
| | | \--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | +--- com.github.weisj:darklaf-windows:2.5.4
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | | \--- net.java.dev.jna:jna:5.5.0 -> 5.6.0
| | +--- com.github.weisj:darklaf-macos:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- org.swinglabs:jxlayer:3.0.4
| | \--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- com.miglayout:miglayout-swing:5.2
| | \--- com.miglayout:miglayout-core:5.2
| +--- commons-codec:commons-codec:1.15
| +--- commons-collections:commons-collections:3.2.2
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-math3:3.6.1
| +--- org.apache.commons:commons-text:1.9
| | \--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.tika:tika-core:1.24.1
| +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
| | +--- commons-io:commons-io:1.3.1 -> 2.8.0
| | \--- commons-logging:commons-logging:1.0.4
| +--- org.freemarker:freemarker:2.3.30
| +--- org.jodd:jodd-core:5.0.13
| +--- org.jodd:jodd-props:5.0.13
| | \--- org.jodd:jodd-core:5.0.13
| +--- org.mozilla:rhino:1.7.13
| +--- org.slf4j:jcl-over-slf4j:1.7.30
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter:5.4.3
| | \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:jorphan:5.4.3
| | +--- commons-io:commons-io:2.8.0
| | +--- org.apache.commons:commons-collections4:4.4
| | +--- org.apache.commons:commons-lang3:3.11
| | +--- org.apache.commons:commons-math3:3.6.1
| | +--- org.apache.commons:commons-text:1.9 (*)
| | +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| | +--- org.apiguardian:apiguardian-api:1.1.0
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- bsf:bsf:2.4.0
| | \--- commons-logging:commons-logging:1.0.4
| +--- com.fifesoft:rsyntaxtextarea:3.1.1
| +--- net.sf.jtidy:jtidy:r938
| +--- com.thoughtworks.xstream:xstream:1.4.15
| | +--- xmlpull:xmlpull:1.1.3.1
| | \--- xpp3:xpp3_min:1.1.4c
| +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-core:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| | +--- org.apache.logging.log4j:log4j-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
| +--- org.apiguardian:apiguardian-api:1.1.0
| +--- oro:oro:2.0.8
| +--- xalan:xalan:2.7.2
| | \--- xalan:serializer:2.7.2
| | \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
| +--- net.sf.saxon:Saxon-HE:9.9.1-8
| +--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-dateutil:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-datetime:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jmx:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-json:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jsr223:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-sql:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-templates:3.0.7
| | +--- org.codehaus.groovy:groovy:3.0.7
| | \--- org.codehaus.groovy:groovy-xml:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.apache.tika:tika-parsers:1.24.1
| +--- xerces:xercesImpl:2.12.0
| | \--- xml-apis:xml-apis:1.4.01
| \--- xml-apis:xml-apis:1.4.01
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.0
+--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0
| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0
| \--- org.jetbrains:annotations:13.0
+--- org.jetbrains.kotlin:kotlin-script-runtime:1.7.0
+--- org.jetbrains.kotlin:kotlin-reflect:1.7.0
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.0 (*)
+--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.0
+--- org.jetbrains.intellij.deps:trove4j:1.0.20200330
\--- net.java.dev.jna:jna:5.6.0
I had a little rendering error which I'm fixing now.
Another case for a wrong (?) dominator tree:
api("org.apache.jmeter:ApacheJMeter_core:5.4.3")
api("org.apache.jmeter:ApacheJMeter_http:5.4.3")
The following lines come out of order (it believe they should be top-level elements as well):
| +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
| +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
| +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
| +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
| | \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
> Task :printDominatorTreeMain
50.22 MiB :
+--- 31.68 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
| +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
| +--- 3.33 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
| | +--- 1.76 MiB (0.32 MiB) com.github.weisj:darklaf-windows:2.5.4
| | | \--- 1.44 MiB net.java.dev.jna:jna:5.5.0
| | +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
| | +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
| | +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
| | \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
| +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
| | \--- 0.26 MiB xalan:serializer:2.7.2
| +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
| +--- 1.62 MiB org.freemarker:freemarker:2.3.30
| +--- 1.32 MiB xerces:xercesImpl:2.12.0
| +--- 1.25 MiB org.mozilla:rhino:1.7.13
| +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
| +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
| +--- 0.56 MiB commons-collections:commons-collections:3.2.2
| +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
| | \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
| +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
| +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
| +--- 0.21 MiB xml-apis:xml-apis:1.4.01
| +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
| +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
| +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
| +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
| +--- 0.11 MiB bsf:bsf:2.4.0
| +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
| +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
| +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
| | \--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
| +--- 0.02 MiB org.jodd:jodd-props:5.0.13
| +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
| +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
| +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
| +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
| +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
| \--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
+--- 8.01 MiB (0.49 MiB) org.apache.jmeter:ApacheJMeter_http:5.4.3
| +--- 3.40 MiB (0.72 MiB) org.apache.jmeter:ApacheJMeter_components:5.4.3
| | +--- 0.50 MiB javax.mail:mail:1.5.0-b01
| | +--- 0.47 MiB io.burt:jmespath-core:0.5.0
| | +--- 0.37 MiB org.apache-extras.beanshell:bsh:2.0b6
| | +--- 0.35 MiB org.apache.httpcomponents:httpcore-nio:4.4.13
| | +--- 0.21 MiB com.jayway.jsonpath:json-path:2.4.0
| | +--- 0.17 MiB org.apache.httpcomponents:httpasyncclient:4.1.4
| | +--- 0.14 MiB jcharts:jcharts:0.7.5
| | +--- 0.13 MiB org.apache.commons:commons-pool2:2.9.0
| | +--- 0.12 MiB org.ow2.asm:asm:9.0
| | +--- 0.11 MiB net.minidev:json-smart:2.3
| | +--- 0.07 MiB com.sun.activation:javax.activation:1.2.0
| | +--- 0.03 MiB net.minidev:accessors-smart:1.2
| | \--- 0.01 MiB io.burt:jmespath-jackson:0.5.0
| +--- 1.24 MiB com.helger:ph-commons:9.5.1
| | \--- 0.74 MiB org.apache.httpcomponents:httpclient:4.5.12
| +--- 0.48 MiB com.helger:ph-css:6.2.3
| +--- 0.38 MiB org.jsoup:jsoup:1.13.1
| +--- 0.31 MiB org.apache.httpcomponents:httpcore:4.4.13
| +--- 0.31 MiB dnsjava:dnsjava:2.1.9
| +--- 0.29 MiB commons-net:commons-net:3.7.2
| +--- 0.21 MiB org.jodd:jodd-lagarto:5.0.13
| +--- 0.09 MiB org.brotli:dec:0.1.2
| +--- 0.04 MiB org.apache.httpcomponents:httpmime:4.5.12
| | \--- 0.02 MiB org.jodd:jodd-log:5.0.13
| +--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
| +--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
| +--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
| +--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
| | \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
| +--- 0.72 MiB org.apache.commons:commons-collections4:4.4
| +--- 0.68 MiB org.apache.tika:tika-core:1.24.1
| +--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
| | +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
| | +--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
| | \--- 0.55 MiB org.apache.commons:commons-lang3:3.11
| +--- 0.38 MiB org.jodd:jodd-core:5.0.13
| +--- 0.34 MiB commons-codec:commons-codec:1.15
| +--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
| | \--- 0.27 MiB commons-io:commons-io:2.8.0
| +--- 0.24 MiB net.sf.jtidy:jtidy:r938
| +--- 0.21 MiB org.apache.commons:commons-text:1.9
| +--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
| | \--- 0.10 MiB com.miglayout:miglayout-core:5.2
| +--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
| +--- 0.06 MiB oro:oro:2.0.8
| | +--- 0.06 MiB commons-logging:commons-logging:1.2
| | \--- 0.04 MiB org.slf4j:slf4j-api:1.7.30
> Task :dependencies
------------------------------------------------------------
Root project 'junit18279366235942890377'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| +--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| | \--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- org.checkerframework:checker-qual:3.8.0
| | \--- com.google.errorprone:error_prone_annotations:2.4.0
| +--- com.github.weisj:darklaf-core:2.5.4
| | +--- com.github.weisj:darklaf-theme:2.5.4
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4
| | | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | | \--- com.formdev:svgSalamander:1.1.2.3
| | | \--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | +--- com.github.weisj:darklaf-windows:2.5.4
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | | \--- net.java.dev.jna:jna:5.5.0
| | +--- com.github.weisj:darklaf-macos:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- org.swinglabs:jxlayer:3.0.4
| | \--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- com.miglayout:miglayout-swing:5.2
| | \--- com.miglayout:miglayout-core:5.2
| +--- commons-codec:commons-codec:1.15
| +--- commons-collections:commons-collections:3.2.2
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-math3:3.6.1
| +--- org.apache.commons:commons-text:1.9
| | \--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.tika:tika-core:1.24.1
| +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
| | +--- commons-io:commons-io:1.3.1 -> 2.8.0
| | \--- commons-logging:commons-logging:1.0.4 -> 1.2
| +--- org.freemarker:freemarker:2.3.30
| +--- org.jodd:jodd-core:5.0.13
| +--- org.jodd:jodd-props:5.0.13
| | \--- org.jodd:jodd-core:5.0.13
| +--- org.mozilla:rhino:1.7.13
| +--- org.slf4j:jcl-over-slf4j:1.7.30
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter:5.4.3
| | \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:jorphan:5.4.3
| | +--- commons-io:commons-io:2.8.0
| | +--- org.apache.commons:commons-collections4:4.4
| | +--- org.apache.commons:commons-lang3:3.11
| | +--- org.apache.commons:commons-math3:3.6.1
| | +--- org.apache.commons:commons-text:1.9 (*)
| | +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| | +--- org.apiguardian:apiguardian-api:1.1.0
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- bsf:bsf:2.4.0
| | \--- commons-logging:commons-logging:1.0.4 -> 1.2
| +--- com.fifesoft:rsyntaxtextarea:3.1.1
| +--- net.sf.jtidy:jtidy:r938
| +--- com.thoughtworks.xstream:xstream:1.4.15
| | +--- xmlpull:xmlpull:1.1.3.1
| | \--- xpp3:xpp3_min:1.1.4c
| +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-core:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| | +--- org.apache.logging.log4j:log4j-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
| +--- org.apiguardian:apiguardian-api:1.1.0
| +--- oro:oro:2.0.8
| +--- xalan:xalan:2.7.2
| | \--- xalan:serializer:2.7.2
| | \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
| +--- net.sf.saxon:Saxon-HE:9.9.1-8
| +--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-dateutil:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-datetime:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jmx:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-json:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jsr223:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-sql:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-templates:3.0.7
| | +--- org.codehaus.groovy:groovy:3.0.7
| | \--- org.codehaus.groovy:groovy-xml:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.apache.tika:tika-parsers:1.24.1
| +--- xerces:xercesImpl:2.12.0
| | \--- xml-apis:xml-apis:1.4.01
| \--- xml-apis:xml-apis:1.4.01
\--- org.apache.jmeter:ApacheJMeter_http:5.4.3
+--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
+--- commons-io:commons-io:2.8.0
+--- org.apache.commons:commons-lang3:3.11
+--- org.apache.commons:commons-text:1.9 (*)
+--- org.jodd:jodd-lagarto:5.0.13
| +--- org.jodd:jodd-core:5.0.13
| \--- org.jodd:jodd-log:5.0.13
+--- org.jsoup:jsoup:1.13.1
+--- oro:oro:2.0.8
+--- org.apache.commons:commons-collections4:4.4
+--- commons-net:commons-net:3.7.2
+--- com.helger:ph-commons:9.5.1
| \--- org.slf4j:slf4j-api:1.7.30
+--- com.helger:ph-css:6.2.3
| +--- com.helger:ph-commons:9.4.2 -> 9.5.1 (*)
| \--- org.slf4j:slf4j-api:1.7.30
+--- dnsjava:dnsjava:2.1.9
+--- org.apache.httpcomponents:httpmime:4.5.12
| \--- org.apache.httpcomponents:httpclient:4.5.12
| +--- org.apache.httpcomponents:httpcore:4.4.13
| +--- commons-logging:commons-logging:1.2
| \--- commons-codec:commons-codec:1.11 -> 1.15
+--- org.apache.httpcomponents:httpcore:4.4.13
+--- org.brotli:dec:0.1.2
+--- com.miglayout:miglayout-swing:5.2 (*)
+--- com.fasterxml.jackson.core:jackson-core:2.10.5
+--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
+--- org.apache.tika:tika-core:1.24.1
+--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_components:5.4.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
| +--- io.burt:jmespath-core:0.5.0
| +--- io.burt:jmespath-jackson:0.5.0
| | +--- io.burt:jmespath-core:0.5.0
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.9 -> 2.10.5 (*)
| +--- jcharts:jcharts:0.7.5
| +--- oro:oro:2.0.8
| +--- net.minidev:json-smart:2.3
| | \--- net.minidev:accessors-smart:1.2
| | \--- org.ow2.asm:asm:5.0.4 -> 9.0
| +--- net.minidev:accessors-smart:1.2 (*)
| +--- org.apache.commons:commons-pool2:2.9.0
| +--- commons-codec:commons-codec:1.15
| +--- org.ow2.asm:asm:9.0
| +--- org.jodd:jodd-log:5.0.13
| +--- org.jodd:jodd-lagarto:5.0.13 (*)
| +--- com.jayway.jsonpath:json-path:2.4.0
| | +--- net.minidev:json-smart:2.3 (*)
| | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| +--- org.apache.httpcomponents:httpasyncclient:4.1.4
| | +--- org.apache.httpcomponents:httpcore:4.4.10 -> 4.4.13
| | +--- org.apache.httpcomponents:httpcore-nio:4.4.10 -> 4.4.13
| | | \--- org.apache.httpcomponents:httpcore:4.4.13
| | +--- org.apache.httpcomponents:httpclient:4.5.6 -> 4.5.12 (*)
| | \--- commons-logging:commons-logging:1.2
| +--- org.apache.httpcomponents:httpcore-nio:4.4.13 (*)
| +--- org.jsoup:jsoup:1.13.1
| +--- org.apache.commons:commons-lang3:3.11
| +--- net.sf.jtidy:jtidy:r938
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-math3:3.6.1
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- com.miglayout:miglayout-swing:5.2 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| +--- org.apache-extras.beanshell:bsh:2.0b6
| +--- javax.mail:mail:1.5.0-b01
| \--- com.sun.activation:javax.activation:1.2.0
+--- com.thoughtworks.xstream:xstream:1.4.15 (*)
\--- org.apache.tika:tika-parsers:1.24.1
Pull latest and try again. I had a rendering issue.
Thank you. It looks much better now:
> Task :printDominatorTreeMain
56.90 MiB :
+--- 30.42 MiB (1.68 MiB) org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- 7.58 MiB org.codehaus.groovy:groovy:3.0.7
| +--- 5.25 MiB net.sf.saxon:Saxon-HE:9.9.1-8
| +--- 3.33 MiB (1.48 MiB) com.github.weisj:darklaf-core:2.5.4
| | +--- 1.76 MiB (0.32 MiB) com.github.weisj:darklaf-windows:2.5.4
| | | \--- 1.44 MiB net.java.dev.jna:jna:5.5.0
| | +--- 0.05 MiB org.swinglabs:jxlayer:3.0.4
| | +--- 0.03 MiB com.github.weisj:darklaf-macos:2.5.4
| | +--- 0.01 MiB com.github.weisj:darklaf-native-utils:2.5.4
| | \--- 0.00 MiB com.github.weisj:darklaf-platform-base:2.5.4
| +--- 3.27 MiB (3.01 MiB) xalan:xalan:2.7.2
| | \--- 0.26 MiB xalan:serializer:2.7.2
| +--- 1.71 MiB org.apache.logging.log4j:log4j-core:2.17.0
| +--- 1.62 MiB org.freemarker:freemarker:2.3.30
| +--- 1.32 MiB xerces:xercesImpl:2.12.0
| +--- 1.14 MiB com.fifesoft:rsyntaxtextarea:3.1.1
| +--- 0.64 MiB org.apache.xmlgraphics:xmlgraphics-commons:2.3
| +--- 0.56 MiB commons-collections:commons-collections:3.2.2
| +--- 0.37 MiB (0.09 MiB) org.codehaus.groovy:groovy-templates:3.0.7
| | \--- 0.28 MiB org.codehaus.groovy:groovy-xml:3.0.7
| +--- 0.29 MiB org.apache.logging.log4j:log4j-api:2.17.0
| +--- 0.29 MiB com.formdev:svgSalamander:1.1.2.3
| +--- 0.21 MiB xml-apis:xml-apis:1.4.01
| +--- 0.20 MiB org.apache.logging.log4j:log4j-1.2-api:2.17.0
| +--- 0.16 MiB org.apache.jmeter:jorphan:5.4.3
| +--- 0.13 MiB org.codehaus.groovy:groovy-jmx:3.0.7
| +--- 0.13 MiB org.codehaus.groovy:groovy-json:3.0.7
| +--- 0.11 MiB bsf:bsf:2.4.0
| +--- 0.08 MiB com.github.weisj:darklaf-theme:2.5.4
| +--- 0.08 MiB org.codehaus.groovy:groovy-sql:3.0.7
| +--- 0.07 MiB com.github.weisj:darklaf-property-loader:2.5.4
| +--- 0.04 MiB com.github.weisj:darklaf-utils:2.5.4
| +--- 0.02 MiB org.jodd:jodd-props:5.0.13
| +--- 0.02 MiB org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| +--- 0.02 MiB org.codehaus.groovy:groovy-jsr223:3.0.7
| +--- 0.02 MiB com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- 0.02 MiB org.codehaus.groovy:groovy-datetime:3.0.7
| +--- 0.02 MiB org.slf4j:jcl-over-slf4j:1.7.30
| +--- 0.01 MiB org.apache.jmeter:ApacheJMeter:5.4.3
| +--- 0.01 MiB org.codehaus.groovy:groovy-dateutil:3.0.7
| \--- 0.00 MiB org.apiguardian:apiguardian-api:1.1.0
+--- 4.40 MiB (0.02 MiB) org.apache.jmeter:ApacheJMeter_bolt:5.4.3
| +--- 4.38 MiB (4.37 MiB) org.neo4j.driver:neo4j-java-driver:4.2.0
| | \--- 0.01 MiB org.reactivestreams:reactive-streams:1.0.3
+--- 2.70 MiB (0.72 MiB) org.apache.jmeter:ApacheJMeter_components:5.4.3
| +--- 0.47 MiB io.burt:jmespath-core:0.5.0
| +--- 0.37 MiB org.apache-extras.beanshell:bsh:2.0b6
| +--- 0.35 MiB org.apache.httpcomponents:httpcore-nio:4.4.13
| +--- 0.21 MiB com.jayway.jsonpath:json-path:2.4.0
| +--- 0.17 MiB org.apache.httpcomponents:httpasyncclient:4.1.4
| +--- 0.14 MiB jcharts:jcharts:0.7.5
| +--- 0.12 MiB org.ow2.asm:asm:9.0
| +--- 0.11 MiB net.minidev:json-smart:2.3
| +--- 0.03 MiB net.minidev:accessors-smart:1.2
| \--- 0.01 MiB io.burt:jmespath-jackson:0.5.0
+--- 2.66 MiB (0.49 MiB) org.apache.jmeter:ApacheJMeter_http:5.4.3
| +--- 1.24 MiB com.helger:ph-commons:9.5.1
| +--- 0.48 MiB com.helger:ph-css:6.2.3
| +--- 0.31 MiB dnsjava:dnsjava:2.1.9
| +--- 0.09 MiB org.brotli:dec:0.1.2
| \--- 0.04 MiB org.apache.httpcomponents:httpmime:4.5.12
+--- 2.11 MiB org.apache.commons:commons-math3:3.6.1
+--- 1.34 MiB com.fasterxml.jackson.core:jackson-databind:2.10.5
+--- 1.27 MiB org.apache.tika:tika-parsers:1.24.1
+--- 1.25 MiB org.mozilla:rhino:1.7.13
+--- 1.11 MiB (0.88 MiB) com.github.ben-manes.caffeine:caffeine:2.8.8
| +--- 0.22 MiB org.checkerframework:checker-qual:3.8.0
| \--- 0.01 MiB com.google.errorprone:error_prone_annotations:2.4.0
+--- 0.75 MiB (0.11 MiB) org.apache.jmeter:ApacheJMeter_functions:5.4.3
| +--- 0.38 MiB org.apache.commons:commons-jexl3:3.1
| \--- 0.26 MiB org.apache.commons:commons-jexl:2.1.1
+--- 0.74 MiB org.apache.httpcomponents:httpclient:4.5.12
+--- 0.72 MiB org.apache.commons:commons-collections4:4.4
+--- 0.68 MiB org.apache.tika:tika-core:1.24.1
+--- 0.63 MiB (0.60 MiB) com.thoughtworks.xstream:xstream:1.4.15
| +--- 0.02 MiB xpp3:xpp3_min:1.1.4c
| \--- 0.01 MiB xmlpull:xmlpull:1.1.3.1
+--- 0.55 MiB org.apache.commons:commons-lang3:3.11
+--- 0.53 MiB (0.02 MiB) org.apache.jmeter:ApacheJMeter_junit:5.4.3
| +--- 0.36 MiB junit:junit:4.13.1
| +--- 0.10 MiB org.exparity:hamcrest-date:2.0.7
| \--- 0.04 MiB org.hamcrest:hamcrest-core:1.3
+--- 0.50 MiB javax.mail:mail:1.5.0-b01
+--- 0.43 MiB (0.03 MiB) org.apache.jmeter:ApacheJMeter_mongodb:5.4.3
| \--- 0.40 MiB org.mongodb:mongo-java-driver:2.11.3
+--- 0.38 MiB org.jodd:jodd-core:5.0.13
+--- 0.38 MiB org.jsoup:jsoup:1.13.1
+--- 0.34 MiB commons-codec:commons-codec:1.15
+--- 0.33 MiB com.fasterxml.jackson.core:jackson-core:2.10.5
+--- 0.31 MiB org.apache.httpcomponents:httpcore:4.4.13
+--- 0.29 MiB commons-net:commons-net:3.7.2
+--- 0.27 MiB commons-io:commons-io:2.8.0
+--- 0.26 MiB (0.06 MiB) org.apache.jmeter:ApacheJMeter_jdbc:5.4.3
| \--- 0.20 MiB org.apache.commons:commons-dbcp2:2.8.0
+--- 0.24 MiB net.sf.jtidy:jtidy:r938
+--- 0.21 MiB org.jodd:jodd-lagarto:5.0.13
+--- 0.21 MiB org.apache.commons:commons-text:1.9
+--- 0.13 MiB org.apache.commons:commons-pool2:2.9.0
+--- 0.12 MiB (0.02 MiB) com.miglayout:miglayout-swing:5.2
| \--- 0.10 MiB com.miglayout:miglayout-core:5.2
+--- 0.12 MiB (0.09 MiB) org.apache.jmeter:ApacheJMeter_jms:5.4.3
| \--- 0.03 MiB org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1
+--- 0.07 MiB com.sun.activation:javax.activation:1.2.0
+--- 0.06 MiB com.fasterxml.jackson.core:jackson-annotations:2.10.5
+--- 0.06 MiB oro:oro:2.0.8
+--- 0.06 MiB commons-logging:commons-logging:1.2
+--- 0.06 MiB org.apache.jmeter:ApacheJMeter_mail:5.4.3
+--- 0.05 MiB org.apache.jmeter:ApacheJMeter_ldap:5.4.3
+--- 0.05 MiB org.apache.jmeter:ApacheJMeter_java:5.4.3
+--- 0.04 MiB org.slf4j:slf4j-api:1.7.30
+--- 0.03 MiB org.apache.jmeter:ApacheJMeter_tcp:5.4.3
+--- 0.02 MiB org.jodd:jodd-log:5.0.13
+--- 0.01 MiB org.apache.jmeter:ApacheJMeter_ftp:5.4.3
\--- 0.01 MiB org.apache.jmeter:ApacheJMeter_native:5.4.3
> Task :dependencies
------------------------------------------------------------
Root project 'junit14444170473448658469'
------------------------------------------------------------
runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.apache.jmeter:ApacheJMeter_core:5.4.3
| +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| +--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.10.5
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.5
| | \--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8
| | +--- org.checkerframework:checker-qual:3.8.0
| | \--- com.google.errorprone:error_prone_annotations:2.4.0
| +--- com.github.weisj:darklaf-core:2.5.4
| | +--- com.github.weisj:darklaf-theme:2.5.4
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4
| | | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | | \--- com.formdev:svgSalamander:1.1.2.3
| | | \--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- com.github.weisj:darklaf-utils:2.5.4
| | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | +--- com.github.weisj:darklaf-windows:2.5.4
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | | \--- net.java.dev.jna:jna:5.5.0
| | +--- com.github.weisj:darklaf-macos:2.5.4
| | | +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| | | +--- com.github.weisj:darklaf-native-utils:2.5.4
| | | +--- com.github.weisj:darklaf-utils:2.5.4
| | | +--- com.github.weisj:darklaf-platform-base:2.5.4
| | | \--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| | +--- org.swinglabs:jxlayer:3.0.4
| | \--- com.formdev:svgSalamander:1.1.2.3
| +--- com.github.weisj:darklaf-theme:2.5.4 (*)
| +--- com.github.weisj:darklaf-property-loader:2.5.4 (*)
| +--- com.github.weisj:darklaf-extensions-rsyntaxarea:0.3.4
| +--- com.miglayout:miglayout-swing:5.2
| | \--- com.miglayout:miglayout-core:5.2
| +--- commons-codec:commons-codec:1.15
| +--- commons-collections:commons-collections:3.2.2
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-math3:3.6.1
| +--- org.apache.commons:commons-text:1.9
| | \--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.tika:tika-core:1.24.1
| +--- org.apache.xmlgraphics:xmlgraphics-commons:2.3
| | +--- commons-io:commons-io:1.3.1 -> 2.8.0
| | \--- commons-logging:commons-logging:1.0.4 -> 1.2
| +--- org.freemarker:freemarker:2.3.30
| +--- org.jodd:jodd-core:5.0.13
| +--- org.jodd:jodd-props:5.0.13
| | \--- org.jodd:jodd-core:5.0.13
| +--- org.mozilla:rhino:1.7.13
| +--- org.slf4j:jcl-over-slf4j:1.7.30
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter:5.4.3
| | \--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:jorphan:5.4.3
| | +--- commons-io:commons-io:2.8.0
| | +--- org.apache.commons:commons-collections4:4.4
| | +--- org.apache.commons:commons-lang3:3.11
| | +--- org.apache.commons:commons-math3:3.6.1
| | +--- org.apache.commons:commons-text:1.9 (*)
| | +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| | +--- org.apiguardian:apiguardian-api:1.1.0
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- bsf:bsf:2.4.0
| | \--- commons-logging:commons-logging:1.0.4 -> 1.2
| +--- com.fifesoft:rsyntaxtextarea:3.1.1
| +--- net.sf.jtidy:jtidy:r938
| +--- com.thoughtworks.xstream:xstream:1.4.15
| | +--- xmlpull:xmlpull:1.1.3.1
| | \--- xpp3:xpp3_min:1.1.4c
| +--- org.apache.logging.log4j:log4j-1.2-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-core:2.17.0
| | \--- org.apache.logging.log4j:log4j-api:2.17.0
| +--- org.apache.logging.log4j:log4j-slf4j-impl:2.17.0
| | +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| | +--- org.apache.logging.log4j:log4j-api:2.17.0
| | \--- org.apache.logging.log4j:log4j-core:2.17.0 (*)
| +--- org.apiguardian:apiguardian-api:1.1.0
| +--- oro:oro:2.0.8
| +--- xalan:xalan:2.7.2
| | \--- xalan:serializer:2.7.2
| | \--- xml-apis:xml-apis:1.3.04 -> 1.4.01
| +--- net.sf.saxon:Saxon-HE:9.9.1-8
| +--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-dateutil:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-datetime:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jmx:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-json:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-jsr223:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-sql:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.codehaus.groovy:groovy-templates:3.0.7
| | +--- org.codehaus.groovy:groovy:3.0.7
| | \--- org.codehaus.groovy:groovy-xml:3.0.7
| | \--- org.codehaus.groovy:groovy:3.0.7
| +--- org.apache.tika:tika-parsers:1.24.1
| +--- xerces:xercesImpl:2.12.0
| | \--- xml-apis:xml-apis:1.4.01
| \--- xml-apis:xml-apis:1.4.01
+--- org.apache.jmeter:ApacheJMeter_bshclient:5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter_components:5.4.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
| +--- io.burt:jmespath-core:0.5.0
| +--- io.burt:jmespath-jackson:0.5.0
| | +--- io.burt:jmespath-core:0.5.0
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.9 -> 2.10.5 (*)
| +--- jcharts:jcharts:0.7.5
| +--- oro:oro:2.0.8
| +--- net.minidev:json-smart:2.3
| | \--- net.minidev:accessors-smart:1.2
| | \--- org.ow2.asm:asm:5.0.4 -> 9.0
| +--- net.minidev:accessors-smart:1.2 (*)
| +--- org.apache.commons:commons-pool2:2.9.0
| +--- commons-codec:commons-codec:1.15
| +--- org.ow2.asm:asm:9.0
| +--- org.jodd:jodd-log:5.0.13
| +--- org.jodd:jodd-lagarto:5.0.13
| | +--- org.jodd:jodd-core:5.0.13
| | \--- org.jodd:jodd-log:5.0.13
| +--- com.jayway.jsonpath:json-path:2.4.0
| | +--- net.minidev:json-smart:2.3 (*)
| | \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
| +--- org.apache.httpcomponents:httpasyncclient:4.1.4
| | +--- org.apache.httpcomponents:httpcore:4.4.10 -> 4.4.13
| | +--- org.apache.httpcomponents:httpcore-nio:4.4.10 -> 4.4.13
| | | \--- org.apache.httpcomponents:httpcore:4.4.13
| | +--- org.apache.httpcomponents:httpclient:4.5.6 -> 4.5.12
| | | +--- org.apache.httpcomponents:httpcore:4.4.13
| | | +--- commons-logging:commons-logging:1.2
| | | \--- commons-codec:commons-codec:1.11 -> 1.15
| | \--- commons-logging:commons-logging:1.2
| +--- org.apache.httpcomponents:httpcore-nio:4.4.13 (*)
| +--- org.jsoup:jsoup:1.13.1
| +--- org.apache.commons:commons-lang3:3.11
| +--- net.sf.jtidy:jtidy:r938
| +--- org.apache.commons:commons-collections4:4.4
| +--- org.apache.commons:commons-math3:3.6.1
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- com.miglayout:miglayout-swing:5.2 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| +--- org.apache-extras.beanshell:bsh:2.0b6
| +--- javax.mail:mail:1.5.0-b01
| \--- com.sun.activation:javax.activation:1.2.0
+--- org.apache.jmeter:ApacheJMeter_functions:5.4.3
| +--- org.mozilla:rhino:1.7.13
| +--- commons-codec:commons-codec:1.15
| +--- org.apache.commons:commons-jexl:2.1.1
| | \--- commons-logging:commons-logging:1.1.1 -> 1.2
| +--- org.apache.commons:commons-jexl3:3.1
| | \--- commons-logging:commons-logging:1.2
| +--- org.apache.commons:commons-lang3:3.11
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
| +--- oro:oro:2.0.8
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_components:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jorphan:5.4.3 FAILED
+--- org.apache.jmeter:ApacheJMeter_http:5.4.3
| +--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- org.jodd:jodd-lagarto:5.0.13 (*)
| +--- org.jsoup:jsoup:1.13.1
| +--- oro:oro:2.0.8
| +--- org.apache.commons:commons-collections4:4.4
| +--- commons-net:commons-net:3.7.2
| +--- com.helger:ph-commons:9.5.1
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- com.helger:ph-css:6.2.3
| | +--- com.helger:ph-commons:9.4.2 -> 9.5.1 (*)
| | \--- org.slf4j:slf4j-api:1.7.30
| +--- dnsjava:dnsjava:2.1.9
| +--- org.apache.httpcomponents:httpmime:4.5.12
| | \--- org.apache.httpcomponents:httpclient:4.5.12 (*)
| +--- org.apache.httpcomponents:httpcore:4.4.13
| +--- org.brotli:dec:0.1.2
| +--- com.miglayout:miglayout-swing:5.2 (*)
| +--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
| +--- org.apache.tika:tika-core:1.24.1
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| +--- org.apache.jmeter:ApacheJMeter_components:5.4.3 (*)
| +--- com.thoughtworks.xstream:xstream:1.4.15 (*)
| \--- org.apache.tika:tika-parsers:1.24.1
+--- org.apache.jmeter:ApacheJMeter_bolt:5.4.3
| +--- org.neo4j.driver:neo4j-java-driver:4.2.0
| | \--- org.reactivestreams:reactive-streams:1.0.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- com.fasterxml.jackson.core:jackson-core:2.10.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.10.5 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_ftp:5.4.3
| +--- commons-net:commons-net:3.7.2
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_java:5.4.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jdbc:5.4.3
| +--- org.apache.commons:commons-dbcp2:2.8.0
| | +--- org.apache.commons:commons-pool2:2.8.1 -> 2.9.0
| | \--- commons-logging:commons-logging:1.2
| +--- org.apache.commons:commons-lang3:3.11
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_jms:5.4.3
| +--- org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1
| +--- org.apache.commons:commons-lang3:3.11
| +--- commons-io:commons-io:2.8.0
| +--- com.miglayout:miglayout-swing:5.2 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| \--- com.github.ben-manes.caffeine:caffeine:2.8.8 (*)
+--- org.apache.jmeter:ApacheJMeter_junit:5.4.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.exparity:hamcrest-date:2.0.7
| | \--- org.hamcrest:hamcrest-core:1.3
| +--- com.miglayout:miglayout-swing:5.2 (*)
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| \--- junit:junit:4.13.1
| \--- org.hamcrest:hamcrest-core:1.3
+--- org.apache.jmeter:ApacheJMeter_ldap:5.4.3
| +--- org.apache.commons:commons-text:1.9 (*)
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
+--- org.apache.jmeter:ApacheJMeter_mail:5.4.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- commons-io:commons-io:2.8.0
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| +--- javax.mail:mail:1.5.0-b01
| \--- com.sun.activation:javax.activation:1.2.0
+--- org.apache.jmeter:ApacheJMeter_mongodb:5.4.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| +--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
| \--- org.mongodb:mongo-java-driver:2.11.3
+--- org.apache.jmeter:ApacheJMeter_native:5.4.3
| +--- org.apache.commons:commons-lang3:3.11
| +--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
| \--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
\--- org.apache.jmeter:ApacheJMeter_tcp:5.4.3
+--- org.apache.commons:commons-lang3:3.11
+--- commons-io:commons-io:2.8.0
+--- org.apache.jmeter:bom:5.4.3 -> 5.4.3 FAILED
\--- org.apache.jmeter:ApacheJMeter_core:5.4.3 (*)
Thank you. It looks much better now:
Very much thank you for testing for me.
@vlsi let me know if you want to reopen this or open a new issue for the other improvements you were looking for.
Hi, this is a cross-post from https://github.com/gradle/gradle/issues/14222 I'm not sure what Gradle's vision on the dependency tree is, however, it might make sense to add the dominator tree to d-a-a-g-p.
WDYT?
Is your feature request related to a problem? Please describe.
There's a use-case to optimize dependencies (e.g. for faster builds in CI and less download bandwidth). Unfortunately, the impact of dependency is hard to see.
For instance: dependency abc.jar is used in one class only (PreciousClass), and if you remove it you'll eliminate 100MiB worth of dependencies.
Describe the solution you'd like
Here's a regular dependency tree:
Here's the dominator tree for it:
Describe alternatives you've considered
I've filed an issue to Gradle core: https://github.com/gradle/gradle/issues/14222