メモ置き場

Gradleでの依存関係の表示

dependencies task

依存関係を表示する

# 全てのconfigurationを表示
$ ./gradlew -q dependencies
# 指定したconfigurationを表示
$ ./gradlew -q dependencies --configuration compileClasspath

実行例

# `org.springframework.boot:spring-boot-starter-web`を依存に追加したプロジェクトでの出力例。
$ ./gradlew -q dependencies --configuration compileClasspath

------------------------------------------------------------
Root project 'sample'
------------------------------------------------------------

compileClasspath - Compile classpath for source set 'main'.
\--- org.springframework.boot:spring-boot-starter-web -> 2.6.6
     +--- org.springframework.boot:spring-boot-starter:2.6.6
     |    +--- org.springframework.boot:spring-boot:2.6.6
     |    |    +--- org.springframework:spring-core:5.3.18
     |    |    |    \--- org.springframework:spring-jcl:5.3.18
     |    |    \--- org.springframework:spring-context:5.3.18
     |    |         +--- org.springframework:spring-aop:5.3.18
     |    |         |    +--- org.springframework:spring-beans:5.3.18
     |    |         |    |    \--- org.springframework:spring-core:5.3.18 (*)
     |    |         |    \--- org.springframework:spring-core:5.3.18 (*)
     |    |         +--- org.springframework:spring-beans:5.3.18 (*)
     |    |         +--- org.springframework:spring-core:5.3.18 (*)
     |    |         \--- org.springframework:spring-expression:5.3.18
     |    |              \--- org.springframework:spring-core:5.3.18 (*)
     |    +--- org.springframework.boot:spring-boot-autoconfigure:2.6.6
     |    |    \--- org.springframework.boot:spring-boot:2.6.6 (*)
     |    +--- org.springframework.boot:spring-boot-starter-logging:2.6.6
     |    |    +--- ch.qos.logback:logback-classic:1.2.11
     |    |    |    +--- ch.qos.logback:logback-core:1.2.11
     |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
     |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
     |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
     |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
     |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
     |    |         \--- org.slf4j:slf4j-api:1.7.36
     |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
     |    +--- org.springframework:spring-core:5.3.18 (*)
     |    \--- org.yaml:snakeyaml:1.29
     +--- org.springframework.boot:spring-boot-starter-json:2.6.6
     |    +--- org.springframework.boot:spring-boot-starter:2.6.6 (*)
     |    +--- org.springframework:spring-web:5.3.18
     |    |    +--- org.springframework:spring-beans:5.3.18 (*)
     |    |    \--- org.springframework:spring-core:5.3.18 (*)
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.2.2
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.2
     |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2
     |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.2 (c)
     |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.2 (c)
     |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.2 -> 2.13.2.2 (c)
     |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2 (c)
     |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2 (c)
     |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2 (c)
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.2
     |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
     |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.2 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.2 -> 2.13.2.2 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
     |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.2 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.2 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.2 -> 2.13.2.2 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
     |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2
     |         +--- com.fasterxml.jackson.core:jackson-core:2.13.2 (*)
     |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.2 -> 2.13.2.2 (*)
     |         \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
     +--- org.springframework.boot:spring-boot-starter-tomcat:2.6.6
     |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
     |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.60
     |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.60
     |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.60
     |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.60
     +--- org.springframework:spring-web:5.3.18 (*)
     \--- org.springframework:spring-webmvc:5.3.18
          +--- org.springframework:spring-aop:5.3.18 (*)
          +--- org.springframework:spring-beans:5.3.18 (*)
          +--- org.springframework:spring-context:5.3.18 (*)
          +--- org.springframework:spring-core:5.3.18 (*)
          +--- org.springframework:spring-expression:5.3.18 (*)
          \--- org.springframework:spring-web:5.3.18 (*)

(c) - dependency constraint
(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

dependencyInsight task

ライブラリを指定して依存関係を逆引きする。

# dependencyに逆引き対象を指定。configurationオプションも必須
$ ./gradlew -q dependencyInsight --dependency jackson-core --configuration compileClasspath

実行例

# jackson-coreを逆引きする
$ ./gradlew -q dependencyInsight --dependency jackson-core --configuration compileClasspath
com.fasterxml.jackson.core:jackson-core:2.13.2
   variant "apiElements" [
      org.gradle.category            = library
      org.gradle.dependency.bundling = external
      org.gradle.libraryelements     = jar (compatible with: classes)
      org.gradle.usage               = java-api
      org.gradle.status              = release (not requested)

      Requested attributes not found in the selected variant:
         org.gradle.jvm.environment     = standard-jvm
         org.gradle.jvm.version         = 17
   ]
   Selection reasons:
      - Selected by rule
      - By constraint

com.fasterxml.jackson.core:jackson-core:2.13.2
+--- com.fasterxml.jackson:jackson-bom:2.13.2
|    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2
|    |    +--- org.springframework.boot:spring-boot-starter-json:2.6.6
|    |    |    \--- org.springframework.boot:spring-boot-starter-web:2.6.6
|    |    |         \--- compileClasspath (requested org.springframework.boot:spring-boot-starter-web)
|    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
|    +--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2
|    |    +--- org.springframework.boot:spring-boot-starter-json:2.6.6 (*)
|    |    \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.2
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2 (*)
|    |    +--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.13.2.2
|    |         +--- org.springframework.boot:spring-boot-starter-json:2.6.6 (*)
|    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2 (requested com.fasterxml.jackson.core:jackson-databind:2.13.2) (*)
|    |         +--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2 (requested com.fasterxml.jackson.core:jackson-databind:2.13.2) (*)
|    |         +--- com.fasterxml.jackson:jackson-bom:2.13.2 (requested com.fasterxml.jackson.core:jackson-databind:2.13.2) (*)
|    |         \--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2 (requested com.fasterxml.jackson.core:jackson-databind:2.13.2)
|    |              +--- org.springframework.boot:spring-boot-starter-json:2.6.6 (*)
|    |              \--- com.fasterxml.jackson:jackson-bom:2.13.2 (*)
|    +--- com.fasterxml.jackson.core:jackson-core:2.13.2 (*)
|    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2 (*)
|    \--- com.fasterxml.jackson.core:jackson-databind:2.13.2.2 (*)
+--- com.fasterxml.jackson.core:jackson-databind:2.13.2.2 (*)
+--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.2 (*)
+--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2 (*)
\--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.2 (*)

(*) - dependencies omitted (listed previously)

A web-based, searchable dependency report is available by adding the --scan option.

参考