是否有 gradle 依赖项的选项来仅显示库列表

Posted

技术标签:

【中文标题】是否有 gradle 依赖项的选项来仅显示库列表【英文标题】:Is there an option for gradle dependencies to show just the list of libraries 【发布时间】:2021-03-02 07:14:19 【问题描述】:

有简短的表格吗?除了依赖项,我们可以只看到使用的库的平面列表吗? ./gradlew -help 没有显示任何内容。比如:

org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.3.7
com.android.support:recyclerview-v7:28.0.0
...

【问题讨论】:

嗯,这很复杂,有不同的构建变体、常规与测试代码、传递依赖等。./gradlew app:dependencies 将打印app 模块的依赖报告,但我不确定是否这就是你想要的。 即使使用./gradlew app:dependencies,它也会打印一个依赖树。我正在寻找的是一个去重的平面列表。对我来说,用例是查看两个提交之间是否添加了新的依赖项。不确定是否有其他方法可以做到这一点。 【参考方案1】:

打印您需要比较的类路径 - 在更改之前和之后一次 - 然后您可以进行差异化

task runCP() 
    doLast 
        def runList = configurations.runtimeClasspath.asList()
        def compileOnlyList = configurations.compileOnly.asList()
        println(runList.join("\n"))
        println("----")
        println(compileOnlyList.join("\n"))
        println("====")
    

【讨论】:

【参考方案2】:

如果 ./gradlew app:dependencies 对您不起作用,Gradle Enterprise 确实提供了用于比较 2 个构建的仪表板(例如,如果您有 2 个来自不同提交的构建)。从仪表板中,您可以查看版本是否已更改,或者是否添加了新库。它还显示所有配置类型,例如annotationProcessorClasspath、compileClasspath、RuntimeClasspath 等 但它不是免费的。

【讨论】:

以上是关于是否有 gradle 依赖项的选项来仅显示库列表的主要内容,如果未能解决你的问题,请参考以下文章

从 Gradle v7+ 获取版本目录中所有依赖项的列表

Gradle - 获取依赖项的最新发布版本

如何找到依赖项的 gradle 实现路径?

Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀

如何在build.gradle之外声明存储库详细信息

Gradle离线如何缓存依赖项