如何为Gradle buildscript依赖项生成BOM

如何为Gradle buildscript依赖项生成BOM,gradle,dependencies,Gradle,Dependencies,我的团队正在一个严格监管的环境中构建软件,因此我们需要一份完整的材料清单——即使对于我们的构建工具本身也是如此。我们目前正在使用Gradle2.12,但如果它解决了我们当前的问题,我们可以升级 我正在尝试为Gradle生成BOM;所有buildscript依赖项的列表。我们已经可以为正在构建的代码生成一个;这正是Gradle本身需要的一组依赖项。目前,我们正在使用以下任务获取buildscript依赖项列表: task buildscriptDependencies(type: De

我的团队正在一个严格监管的环境中构建软件,因此我们需要一份完整的材料清单——即使对于我们的构建工具本身也是如此。我们目前正在使用Gradle2.12,但如果它解决了我们当前的问题,我们可以升级

我正在尝试为Gradle生成BOM;所有buildscript依赖项的列表。我们已经可以为正在构建的代码生成一个;这正是Gradle本身需要的一组依赖项。目前,我们正在使用以下任务获取buildscript依赖项列表:



    task buildscriptDependencies(type: DependencyReportTask) {
        configurations = [buildscript.configurations.classpath]
    }

然而,这只给了我们直接的依赖关系,而不是可传递的依赖关系

最终的测试是使用这个BOM来填充一个本地工件库(Artifactory,如果有关系的话),并在此基础上构建,完全与internet断开连接。如果我们不能在没有互联网的情况下进行建设,我们就无法通过审计

有人知道一种生成完整buildscript BOM的方法吗

编辑:我在过去几天里发现了一些东西,这使得这个问题比最初想象的更难:依赖项列表是BOM的一部分,而不是全部

POM文件可以列出依赖项,但也可以列出父项。我对POM家长没有深入的了解,但到目前为止我能看到的是:

  • 如果foo版本209将“foo parent”声明为父级,则需要foo parent版本209

  • 在这种情况下,foo被认为是从foo父级继承的,类似于类如何从彼此继承


自动生成依赖项文件的标准方法不列出父项。因此,我没有得到完整的BOM表。因为我使用BOM预加载存储库,所以我所有的构建都失败了,因为各种依赖项都找不到它们的妈妈。

在gradle 2.12中,您可以使用内置任务
gradle buildEnvironment
打印所有buildscript依赖项(包括传递项)的树。

gradle的
DependencyReportTask
不是您要找的吗?或者可能是
gradle依赖项--配置编译
?打印了哪些依赖项/您如何知道他们缺少过渡语?我看得越多,我越觉得我缺少过渡语,我越觉得我缺少父母。所以你列出的“当前方式”不起作用?
In gradle, we have the option to specify different dependency list in one. 
For ex:

List ruby = ["org.ruby:ruby:2.0.1@jar",
               "commons-cli:commons-cli:1.0@jar",
               "org.apache.ant:ant:1.9.4@jar"]

List hibernate = ['org.hibernate:hibernate:3.0.5@jar',
                  'somegroup:someorg:1.0@jar']

dependencies {
    runtime ruby, hibernate
}