无论您在哪里阅读有关持续交付或持续集成的信息,都建议使用工件存储库来存储工件,即使 Jenkins 已经为每个构建存储了它们。
那么为什么推荐使用工件存储库呢?是否有一个流畅的解决方案来处理 Jenkins 构建的工件,例如。使用这些工件进行部署?
无论您在哪里阅读有关持续交付或持续集成的信息,都建议使用工件存储库来存储工件,即使 Jenkins 已经为每个构建存储了它们。
那么为什么推荐使用工件存储库呢?是否有一个流畅的解决方案来处理 Jenkins 构建的工件,例如。使用这些工件进行部署?
工件存储库和持续集成工具有两个不同的用途,一个不能用另一个代替。查看来自Artifactory的视频,它是工件存储库的提供者之一,了解为什么应该使用工件存储库。
Jenkins 将工件存储为无版本控制的普通文件,而工件存储库中的工件可以进行版本控制。因此,您在检索工件和管理它们方面有更大的灵活性。阅读这篇非常好的文章,了解我们为什么需要它们。当然,并非所有这些事情都得到 Jenkins 等持续集成工具的支持。
此外,您还可以查看集成了两者的 Jenkins 的 Artifactory 插件。
需要一个工件存储库,但工件存储库是一个概念部分,并不总是一个独特的工具。使用 Jenkins,您应该拥有 MD5 签名和(我认为)一种从远程服务器下载所需文件的方法(网络服务调用,对吗?)。当然,如果您正在做一些简单的事情,例如使用 Jenkins 构建管道插件,它应该能够顺利访问正确版本的文件。
或者,如果您使用单独的部署工具,则更好的工具会捆绑工件存储库。
无论如何,您想要 ITIL 人员所说的权威媒体/软件库。确定性在于这些位是安全的、可信的和官方的。还有一个图书馆,可以轻松查找和访问它们。使用工件存储库时,您需要确保其足够安全。它已备份。它可用于您的部署(包括生产)。如果您查看 Jenkins 并且它符合您在这些类别中的标准,请认为您已经完成了。如果缺少它,我不会感到惊讶,那么您需要像 Maven 存储库这样的专用工具,或者与部署工具捆绑在一起的东西。
关于这个主题的更多内容,有一个录制的网络广播。幻灯片在Slideshare上。
我没有跟上 Jenkins 的最新情况,我们仍然使用最初称为 Hudson 的 CI 版本。
在您的项目中,您的 pom 通常应该指向您自己的工件存储库,如果您可以获取和部署您自己的(公司)项目。
将工件存储库与 CI 服务器一起使用,它可以部署成功构建的快照和版本,其他开发人员可以使用这些快照和版本。