是否有可能使用Gradle生成一个什么依赖什么的树?

我有一个项目,想要找出所有的依赖,所以我可以用前向声明等修剪它一点。


当前回答

试试这两种方法

./gradlew dependencies > ~/dependencies.txt

or

gradle dependencies > ~/dependencies.txt`

这应该写在用户的主目录下的文本文件依赖。

其他回答

没有模块:

gradle dependencies

为Android:

 gradle app:dependencies

使用gradle包装:

./gradlew app:dependencies

注意:将app替换为项目模块名。

此外,如果你想检查某个东西是否依赖于compile vs. testCompile vs. androidTestCompile,以及是什么把它拉进来的:

./gradlew :app:dependencyInsight --configuration compile --dependency <name>
./gradlew :app:dependencyInsight --configuration testCompile --dependency <name>
./gradlew :app:dependencyInsight --configuration androidTestCompile --dependency <name>

如果你想在图形中可视化你的依赖关系,你可以使用gradle-dependency-graph-generator插件。

通常,这个插件的输出可以在build/reports/dependency-graph目录中找到,如果你使用的是0.5.0版本的插件,它包含三个文件(.dot|.png|.svg)。

真实应用(象棋时钟)中的依赖关系图示例:

对于最新版本的Gradle(我使用6.4.1版本进行测试):

gradle dependencies --configuration compileClasspath

或者如果你正在使用Gradle Wrapper:

gradlew dependencies --configuration compileClasspath

当使用'debug'和'release'编译配置文件为Android构建时,可以使用debugCompileClasspath和releaseCompileClasspath配置来代替compileClasspath。

在Android Studio中

1)打开终端,确保你在项目的根文件夹。

2)运行。/gradlew app:dependencies(如果没有使用gradle wrapper,尝试gradle app:dependencies)

注意,运行。/gradle dependencies只会给你项目根文件夹的依赖树,所以以上述方式提到app,即./gradlew app:dependencies是很重要的。

通常完整的testimplemimplementation、实现和androidtestimplemimplementation依赖关系图太多了,不能一起检查。如果你只是想要实现依赖关系图,你可以使用:

./gradlew app:dependencies --configuration implementation

来源:列出项目中的依赖项

注意:compile在最近的Gradle版本中已经被弃用,在最近的版本中,建议你将所有的compile依赖项转移到实现中。请看这里的答案