【问题标题】:Output differing between `dependencies` and `androidDependencies``dependencies` 和 `androidDependencies` 之间的输出不同
【发布时间】:2022-01-19 01:51:50
【问题描述】:
两者有什么区别
./gradlew :app:dependencies
和
./gradlew :app:androidDependencies
?
我能注意到的只是androidDependencies 在输出图中包含.jar 和.aar。为什么会这样?有没有办法通过dependencies 将这些文件包含在依赖输出中?
【问题讨论】:
标签:
android
gradle
android-gradle-plugin
dependencies
gradlew
【解决方案1】:
您可以运行 ./gradlew :app:tasks 以查看在 :app 项目中可运行的每个 Gradle 任务的简短描述。我看到的每个androidDependencies 和dependencies Gradle 任务的描述如下:
androidDependencies - Displays the Android dependencies of the project.
dependencies - Displays all dependencies declared in project ':app'.
遗憾的是,这里的描述并没有很好地区分两个 Gradle 任务。但是,在运行这两个 Gradle 任务中的每一个时,我发现输出中有两个不同之处,如下所示:
-
androidDependencies 任务调用库是打包为aar 还是jar。 dependencies 任务不提供此信息。 (您已经在问题中指出了这种差异。)
-
androidDependencies 任务打印项目依赖项的扁平列表。另一方面,dependencies 任务打印项目依赖项的嵌套图。
这两个任务之间的另一个区别是您可以为dependencies 任务提供--configuration 选项,以将其输出限制为单个配置。例如,如果您运行./gradlew :app:dependencies --configuration debugCompileClasspath,这将只显示debugCompileClasspath 配置的依赖关系。 --configuration 选项不适用于 androidDependencies 任务。