使用gradle来查找依赖关系树
是否有可能使用gradle生成一棵依赖于什么的树?
我有一个项目,并希望找出所有的依赖关系,所以我可能能够修剪一点前瞻性声明等。
对于Android,请使用此行
gradle app:dependencies
或者如果你有一个gradle包装器:
./gradlew app:dependencies
app
是你的项目模块。
此外,如果你想检查是否有东西是compile
与androidTestCompile
compile
vs androidTestCompile
依赖以及什么是拉它:
./gradlew :app:dependencyInsight --configuration compile --dependency <name> ./gradlew :app:dependencyInsight --configuration testCompile --dependency <name> ./gradlew :app:dependencyInsight --configuration androidTestCompile --dependency <name>
您可以使用gradle dependencies
来渲染依赖关系树。 有关更多信息,请参阅在线用户指南中的第11.6.4节列出项目依赖关系 。
如果您发现很难导航到gradle dependencies
控制台输出, gradle dependencies
可以添加Project reports插件 :
apply plugin: 'project-report'
并使用以下命令生成HTML报告:
$ ./gradlew htmlDependencyReport
报告通常可以在build/reports/project/dependencies/index.html
它看起来像这样:
在Android Studio中(至less从v2.3.3开始),您可以直接从UI运行命令:
点击Gradle标签,然后双击:yourmodule – > Tasks – > android – > androidDependencies
该树将显示在“ Gradle控制台”选项卡中
通常完整的test
, compile
和androidTestCompile
依赖图太多难以一起检查。 如果你只想要compile
依赖关系图,你可以使用:
./gradlew app:dependencies --configuration compile
来源: Gradle文档第4.7.6节
注意:在最近的Gradle版本中已经不推荐使用compile
,在更新的版本中,build议将所有的compile
依赖关系转换为implementation
。 请在这里看到这个答案
在Android Studio中
1)打开terminal,确保你在项目的根文件夹。
2)运行./gradlew app:dependencies
(如果不使用gradle包装,请尝试gradle app:dependencies
)
请注意,运行./gradle dependencies
只会给你项目根文件夹的依赖关系树,所以以上述方式提到应用程序,即./gradlew app:dependencies
是非常重要的。
我也发现有用的运行这个:
./gradlew dI --dependency <your library>
这显示了如何解决dependencyInsight
关系( dependencyInsight
),并帮助您debugging到哪里需要强制或排除您的build.gradle
库
请参阅: https : //docs.gradle.org/current/userguide/tutorial_gradle_command_line.html