我们使用 Jenkins 来运行持续集成构建。这些构建的输出可能是一个 EAR 文件、一个 WAR 文件或一组经过 TAR 处理并部署到上游环境的文件。
至此,我们已经使用 Jenkins 来管理生成的工件。但是,我们在内部部署了 Artifactory。利用 Artifactory 捕获生成的工件会是一个坏主意吗?如果是这样,为什么?例如,Artifactory 是否仅用于保存具有可以在构建时使用 Maven 拉入项目中的版本的 JAR,而不是用于捕获持续集成工具使用的工件?
我们使用 Jenkins 来运行持续集成构建。这些构建的输出可能是一个 EAR 文件、一个 WAR 文件或一组经过 TAR 处理并部署到上游环境的文件。
至此,我们已经使用 Jenkins 来管理生成的工件。但是,我们在内部部署了 Artifactory。利用 Artifactory 捕获生成的工件会是一个坏主意吗?如果是这样,为什么?例如,Artifactory 是否仅用于保存具有可以在构建时使用 Maven 拉入项目中的版本的 JAR,而不是用于捕获持续集成工具使用的工件?
我不这么认为。下图来自 sonatype 网站:
演示 Maven 存储库管理器如何成为部署过程的平台
Artifactory(或任何二进制存储库管理器)应该与您的 CI 服务器一起使用。甚至还有一个插件。
维护二进制存储库管理器优于其他解决方案(网络共享、SCM)的原因很明显:
还有很多。
因此,您使用二进制存储库管理器来控制您的依赖关系并解决您的工件,但为什么要停在那里呢?你的整个周期都有二进制文件:
二进制存储库管理器是保存它们的最安全、最有效和最自然的地方。将所有二进制文件保存在一个地方意味着更少的维护和更高的构建可重复性。