When I run the dependencies
task, I see a dependency graph wherein some entries are preceded by ---
and some entries are preceded by \---
. What do each of these two symbols mean?
As an example, when I run gradle :app:dependencies --configuration debugCompileClasspath
for an Android application, I see an entry as follows:
--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
| --- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
| | --- org.jetbrains:annotations:13.0
| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
CodePudding user response:
---
marks the beginning of an expansion of the list on inner dependencies for the entry next to it.
In your case, it starts the list of the dependencies for org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
. As you can see, the next line is a bit indented, that's the first dependency of the parent org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
.
\---
marks the end of the expansion of the list that was opened on that depth. In your case, \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
is the last dependency from org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
's list. And that dependency has only one inner dependency which is org.jetbrains.kotlin:kotlin-stdlib:1.6.10
.
A lot of dependencies but I lack a better word. I hope I don't confuse you even more :D
CodePudding user response:
This is character-based artwork indicating an increased level of nesting; the symbols themselves don't mean anything beyond their visual appearance. A nested item is a transitive dependency of the item it's nested under.
Example
Taking your example:
--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
| --- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
| | --- org.jetbrains:annotations:13.0
| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
In this example, both kotlin-stdlib
and kotlin-stdlib-jdk7
are transitive dependencies of kotlin-stdlib-jdk8
. Likewise, both annotations
& kotlin-stdlib-common
are transitive dependencies of kotlin-stdlib
. kotlin-stdlib
is a transitive dependency of kotlin-stdlib-jdk7
.
In standard HTML list form, this rendering would be identical to:
- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
- org.jetbrains:annotations:13.0
- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
The following is a different textual rendering of the list, using drawing-based characters rather than purely ASCII ones, that may make things clearer:
┌─── org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10
│ │
│ ├─── org.jetbrains.kotlin:kotlin-stdlib:1.6.10
│ │ │
│ │ ├─── org.jetbrains:annotations:13.0
│ │ │
│ │ └─── org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
│ │
│ └─── org.jetbrains.kotlin:kotlin.stdlib-jdk7:1.6.10
│ │
│ └─── org.jetbrains.kotlin:kotlin-stdlib:1.6.10
In this example, instead of ├───
to indicate a nested item with further items below, Gradle uses ---
; instead of └───
to indicate the last nested item, it uses \---
.