构建提升:你如何管理依赖关系?

Build promotion: how do you manage dependencies?

我正在尝试了解将我们的 java 项目从 Snaphot/Release 政策转换为推广政策的所有影响。

一个明显的步骤是每个构建最终都会创建一个可能会一直进入生产环境的工件,因此不再有快照。但是,我应该如何管理从一个项目到其他工件的 link,这些工件可能允许也可能不允许进入生产?

我很难找到关于这个特定主题的有价值的信息。当然,build promotion 被谈论了很多,但是从迁移到 build promotion 的依赖管理很少见。

我看到两个选择:

是否有关于此主题的行业标准?或最佳做法?

非常感谢您的帮助:)

编辑: 我们将三种工件部署到 Artifactory:

我们将 EAR 部署到 JEE 服务器。我们的库和 public 层部署到 Artifactory 并打包在 EAR 中,因此它们不会直接部署在 JEE 容器上。

一个项目构建多个模块,所有内容及其依赖项都打包在一个 EAR 中。一个项目可以依赖于另一个项目的模块,这就是它变得复杂的地方......

我们区分"deployable artifacts"和"libraries"。

可部署的工件(如 ears、wars、standalone jar)通过一个管道,因此它们在不同的步骤中被提升和测试。它们不能是任何其他工件的依赖项。

另一方面,图书馆提升。当它们被构建时(作为发布版本),可以立即作为所有其他工件的可能依赖项使用(发布构建包括单元测试和一些集成测试)。当它们用于可部署工件时,它们会被间接测试和推广。