我的android项目外部库房中有很多库,我想知道它们来自哪里。
我使用了命令行: gradlew:app:dependencyInsight --configuration compile --dependency 在this answer中提到
尝试找到 recyclerview lib,如上图所示
gradlew:app:dependencyInsight --configuration compile --dependency recyclerview
但一无所获:
Task :app:dependencyInsight
No dependencies matching given input were found in configuration ':app:compile'
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
女巫提醒我,我的 build.gradle 文件中没有 app:compile 配置。 gradle 3.0之后编译已被 implementation 和 api 替换。所以我更改了命令行如下:
gradlew:app:dependencyInsight --configuration implementation --dependency recyclerview
但出了问题:
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':app:dependencyInsight'.
Resolving configuration 'implementation' directly is not allowed
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
Get more help at https://help.gradle.org
BUILD FAILED in 2s
1 actionable task: 1 executed
我搜索了很多关于这个bug的内容,但找不到答案。 后来我用 build.gradle 文件中的' compile '替换了所有' implementation ',并使用了第一个compile-configuration命令行,它奏效了。
E:\AndroidApps\SqliteLearn>gradlew :app:dependencyInsight --configuration compile --dependency recyclerview
Configure project :app
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
... ...
Task :app:dependencyInsight
com.android.support:recyclerview-v7:26.1.0
\--- com.android.support:design:26.1.0
\--- compile
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
上面的命令行似乎只适用于编译配置。 是否有一个命令行可以执行相同的工作并使用实现配置?
答案 0 :(得分:0)
看一下https://docs.gradle.org/current/userguide/userguide_single.html#sec:java_library_configurations_graph,你会发现各种新的配置,哪些是可解析的和可消费的。
我认为你想要的是runtimeElements
或runtimeClasspath
,不确定在那种情况下哪一个会起作用。
您也可以使用dependencies
任务而不提供配置,这将解析并显示所有配置及其依赖项。