如何深入了解"实现"配置的依赖关系?

ace*_*azz 9 gradle

基于文档(4.7.6 - 深入了解特定依赖关系),我们可以获得指定配置本身的特定配置的见解.在他们使用的示例中compile,不推荐使用配置.我试图重现相同的命令置换,以build.gradle中,compile与配置implementation配置(如我,我们不应该用compile了).但是当我跑步时:

gradle dependencyInsight --dependency groovy --configuration implementation
Run Code Online (Sandbox Code Playgroud)

Gradle正在回归:

Execution failed for task ':dependencyInsight'.
Resolving configuration 'implementation' directly is not allowed
Run Code Online (Sandbox Code Playgroud)

我的build.gradle文件如下:

apply plugin: 'java-library'

repositories {
    jcenter()
}

dependencies{
    implementation 'org.codehaus.groovy:groovy-all:2.4.10'
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着如果我正在使用implementation或者是否有另一种获取方式,我无法获得依赖关系的洞察力?

Eri*_*old 8

我有一个类似的问题,问了一下,得到了这个答案:

配置为compileClasspath。如果您有变体,则每个变体都有一个配置(即对于release变体,您的配置为releaseCompileConfiguration)。


完整示例-无变体:gradle dependencyInsight --dependency groovy --configuration compileClasspath
完整示例-发布变体:gradle dependencyInsight --dependency groovy --configuration releaseCompileClasspath

注意:有几种方法可以找出可用的配置。

  1. 如果将其添加configurations.each { println it.name }到顶级gradle文件中,则在下次运行任务时,还将获得所有配置的列表。
  2. dependencies在顶层模块上运行任务-这将输出所有配置的所有依赖项。它可能包含很多文本,因此您可以将其通过管道传输到文本文件中,以便于搜索(gradle dependencies > dependencies.txt

  • @ kip2我不知道为什么该配置没有出现在配置列表中,但是我也没有。如果您的构建具有变体(如果您具有构建类型,如调试/发行版和/或flavor,则您具有变体),则完整的配置名称将包括变体。例如,我有一个debug / release构建类型,因此配置名称为`debugCompileClasspath`或`releaseCompileClasspath`。 (2认同)

avi*_*ney 6

要获取可用于的可用配置列表dependencyInsight,简单的方法如下:

  1. 在 android studio 中打开 gradle 视图 View > Tool Windows > Gradle
  2. 选择并运行任务“您的应用程序”> 任务 > Android > androidDependencies

然后您将获得所有可用配置的所有依赖项的列表,只需选择一个并运行:

gradle :mymodule:dependencyInsight --dependency okhttp --configuration flavourDebugCompileClasspath
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你