8

在研究 CI 工具时,我发现许多 CI 安装也集成到了工件存储库中,例如 SonaType Nexus 和 JFrog Artifactory。

这些工具听起来与 Maven 高度集成。我们不使用 Maven,甚至不编译 Java。我们使用 Qt/qmake/make 编译 C++,这个构建对我们来说非常有效。我们仍在研究 CI 工具。

使用 Artifact 存储库有什么意义?

归档到 Nexus 或 Artifactory(或 Archiva)应该是我们制作链中的一个步骤,还是 CI 链的一部分,或者两者都可以?

我如何让我们的“make”构建或 perl/bash/batch 脚本与它们交互?

4

2 回答 2

12

工件存储库有多种用途。主要目的是拥有 maven Central(或任何其他 maven repo)的副本以加快下载速度,即使互联网中断,您也可以使用 maven。由于您不使用 Maven,因此这与您无关。

第二个目的是在其中存储您想要用作依赖项的文件,但您不能从互联网上免费下载。所以你购买它们或从你的供应商那里得到它们并将它们放在你的回购中。这也更适用于maven用户和依赖机制。

第三个重要目的是有一个中央方式,你可以存储你的版本。因此,如果您构建了 v1.0 版本,您可以将其上传到这样的存储库,并且在 maven 中使用简洁的命名方式很容易知道如何找到 v1.0 并将其与所有其他工具一起使用。因此,您可以编写一个脚本,使用 wget 下载您的版本并将其安装在主机上。

大多数情况下,这些 repos 都有一种暂存过程。因此,您可以将 v1.0 存储在暂存的存储库中。有人做测试,当它很好时,他将它推广到发布回购,每个人都可以找到并使用它。

将它们与 Maven 项目集成很简单,并且它们是许多其他构建工具框架,它们很容易连接到它,如 ant ivy、groovy grape 等。由于命名模式,您使用 bash 或 perl 下载/上传文件没有任何限制。

因此,如果您有应该在项目之间共享的版本或文件,并且没有很好的解决方案,那么人工制品存储库可能是了解其工作原理的良好起点。

于 2013-05-10T13:04:45.263 回答
0

如此处所述:

  • 提供对存储库的稳定可靠的访问

  • 支持跨不同环境的大量通用二进制文件

  • 安全和访问控制

  • 跟踪对文件执行的任何操作返回给用户

  • 将大量二进制文件传输到远程位置

  • 跨不同环境管理基础架构配置

于 2018-12-25T01:01:30.470 回答