gpt4 book ai didi

gradle - 如何为 Gradle 构建脚本依赖项生成 BOM

转载 作者:行者123 更新时间:2023-12-02 02:24:35 25 4
gpt4 key购买 nike

我的团队正在严格监管的环境中构建软件,因此我们需要完整的 Material list - 即使对于我们的构建工具本身也是如此。我们目前使用的是 Gradle 2.12,但如果它解决了我们当前的问题,可以升级。

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



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

但是,这只为我们提供了直接依赖关系,而不是传递依赖关系。

最终测试是使用此 BOM 填充本地工件存储库(Artifactory,如果重要的话)并基于该存储库进行构建,完全与互联网断开连接。如果我们无法在没有互联网的情况下进行 build ,我们就无法通过审核。

有人知道生成完整构建脚本 BOM 的方法吗?

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

POM 文件可以列出依赖项,但也可以列出父项。我对POM的 parent 了解不深,但目前我能看到的是:

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

  • 在这种情况下,foo 被认为是从 foo-parent 继承的,类似于类之间如何继承。

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

最佳答案

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

关于gradle - 如何为 Gradle 构建脚本依赖项生成 BOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38056672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com