使用gradle 3.0查找lib依赖项

时间:2017-12-12 09:53:53

标签: android gradle dependencies

enter image description here

我的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

上面的命令行似乎只适用于编译配置。 是否有一个命令行可以执行相同的工作并使用实现配置?

1 个答案:

答案 0 :(得分:0)

看一下https://docs.gradle.org/current/userguide/userguide_single.html#sec:java_library_configurations_graph,你会发现各种新的配置,哪些是可解析的和可消费的。

我认为你想要的是runtimeElementsruntimeClasspath,不确定在那种情况下哪一个会起作用。

您也可以使用dependencies任务而不提供配置,这将解析并显示所有配置及其依赖项。