Gradle - 获取每个库/模块的依赖关系列表

时间:2018-01-10 16:24:53

标签: maven gradle groovy

我正在尝试获取项目中每个模块/库的依赖项列表。

这是项目的结构:

Project
+ --- library1
     + --- library2
        + --- library3
     + --- library4
        + --- library3

项目 的build.gradle是

dependencies {
     compile project(':library1')
}

library2和library4都依赖于library3。他们编译依赖关系的方式与 项目 相同。

我想获得每个模块/库的依赖项,以便我可以决定这些库的碰撞版本序列并在脚本文件中上传到maven。

所以我首先想要为变量中的每个模块保存这些依赖项,脚本文件可以读取它并执行自动化工作。

我尝试在自定义gradle构建文件中使用Conifguration.getAllDependencies()。但它不起作用。

任何人都知道我该怎么做? 任何建议将不胜感激!

==== UPDATE:

我尝试在项目的gradle文件下添加任务

List<ProjectDependency> dependencies =
        project.configurations.collectMany {
            it.allDependencies
        }.findAll {
            it instanceof ProjectDependency
        }

但依赖项返回0大小的列表

1 个答案:

答案 0 :(得分:0)

  • 对于一个简单的项目,可以通过调用
  • 来获取其依赖项
project.configurations*.
        dependencies*.
        findAll { it instanceof ExternalDependency }.
        flatten()

请注意,ExternalDependency使用了ProjectDependency,而不是creates a new session for a user in Jira. Once a session has been successfully created it can be used to access any of Jira’s remote APIs and also the "WEB UI" by passing the appropriate HTTP Cookie header.