【问题标题】:Can Artifactory track run-time dependencies between build-time independent executables?Artifactory 可以跟踪构建时独立可执行文件之间的运行时依赖关系吗?
【发布时间】:2017-04-04 02:49:34
【问题描述】:

我刚刚观看了一个Intro to Artifactory 视频,我正在尝试评估它是否适合以下情况。

在我的组织中,我们正在为嵌入式设备开发一套软件,它们需要作为一个系统协同工作。这些设备中的每一个的软件构建都是相互独立完成的。例如,理论上我可以为设备 A 编译和生成软件版本,而无需设备 B 的任何源代码或二进制文件。这些设备都需要作为集成套件的一部分一起运行,并且这些交互由 ICD 管理和描述.

有时需要进行 ICD 级别的更改或其他一些重要的架构更改,这些更改会导致对两个或更多设备的代码库进行相关更改。所以这在可执行文件之间创建了我所说的“耦合”或相互依赖关系。例如,如果有人想为设备 A 运行 4.5.0 版本的软件,则必须为设备 B 配置 4.19.0 或更高版本的软件以保持兼容性。

我们目前正在跟踪可执行文件与共享驱动器上的电子表格和文档之间的所有这些相互依赖性要求,这变得既麻烦又烦人。

我希望像 Artifactory 这样的东西能够让我们拥有一个包含整个软件套件的所有可执行文件的存储库,用于跟踪所有这些元数据和二进制文件之间的链接。

因此,如果人们决定需要为设备 A 运行 4.5.0 的软件,但不了解其他设备的依赖要求的所有详细知识(在许多情况下,他们不是工程师并试图解释它对他们来说都是困难的),他们可以对整个套件进行“检查”,其中包括设备 B 的 4.19.0 软件。 (如果一系列版本,例如设备 C 软件兼容,请获取最新版本。)

对不起,如果这是一个愚蠢的问题,但我现在只是在学习 JFrog 和 Artifactory。 (我也想知道 bintray 是否可能是更合适的选择......)

Distribution Repository 可以解决这个问题吗?

【问题讨论】:

    标签: artifactory bintray


    【解决方案1】:

    这是一个很好的问题。其实不止一个。所以这里是答案:)

    • 是要走的路。它旨在为设备分发软件并支持您需要的元数据(见下文)。
    • 非常适合开发过程 - 元数据。
    • Distribution Repositories 是您将用于发布可分发的工件

    现在让我们谈谈元数据:)

    您需要将A 版本4.5.0B 版本4.19.0 相关联,这是通过Artifactory Properties 完成的。您可以set them in the CI server during the build,也可以单独using REST API。通常,您可以引入一些更高级别的发布版本并用它注释所有组件(假设A:4.5.0B:4.19.0 都是Suite:1.0 的一部分),或者您可以表达每个工件的矩阵(用注释A:4.5.0属性Compatible.with=B:4.19.0)。

    设置后,检索它们很容易。您可以使用Artifactory Query Language 获取Suite:1.0 的所有组件,或者使用matrix-params resolution 请求具有Compatible.with=B:4.19.0 属性的最新A 工件。

    好消息是,当您通过分发存储库发布这些属性时,这些属性会随工件一起提升到 。然后您可以配置您的设备to consume the correct combinations of artifacts

    有意义吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多