1.问题描述

在代码根目录下使用命令

./gradlew dependencies

结果是所有类型的依赖都是“No dependencies”:

> Task :dependencies

------------------------------------------------------------
Root project 'demo-service'
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
No dependencies

apiElements - API elements for main. (n)
No dependencies

archives - Configuration for archive artifacts. (n)
No dependencies

compileClasspath - Compile classpath for source set 'main'.
No dependencies

compileOnly - Compile only dependencies for source set 'main'. (n)
No dependencies

default - Configuration for default artifacts. (n)
No dependencies

implementation - Implementation only dependencies for source set 'main'. (n)
No dependencies

runtimeClasspath - Runtime classpath of source set 'main'.
No dependencies

runtimeElements - Elements of runtime for main. (n)
No dependencies

runtimeOnly - Runtime only dependencies for source set 'main'. (n)
No dependencies

testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
No dependencies

testCompileClasspath - Compile classpath for source set 'test'.
No dependencies

testCompileOnly - Compile only dependencies for source set 'test'. (n)
No dependencies

testImplementation - Implementation only dependencies for source set 'test'. (n)
No dependencies

testRuntimeClasspath - Runtime classpath of source set 'test'.
No dependencies

testRuntimeOnly - Runtime only dependencies for source set 'test'. (n)
No dependencies

项目结构是多个模块组成的,结构如下:
在这里插入图片描述
其中一共有三个build.gradle文件,一个是根目录下的,另外两个分别在各自的module里面。./gradlew dependencies这个命令是在根目录下运行的

2.解决办法

如果要看module1中的dependencies,则命令改成

./gradlew dependencies -p ./module1

解释:在根目录下使用./gradlew dependencies,会扫描根目录build.gradle下的dependencies,对其进行检测,如果根目录下的build.gradle没有引入依赖的话,就会提示no dependencies.
因此dependencies的检测应该对其中的某个module进行的。对于我而言,只想看module1里面的内容,因此使用-p参数指定一个directory,该命令会输出module1中的dependencies结果。
也有一个替代的命令:

./gradlew module1:dependencies

module的名称作为前缀,这样也是可以的。

更多推荐