第一次搭建 Jenkins CI 系统时,我想知道如何处理快照依赖和本地 Maven 存储库。
我们有一个带有依赖项 Y 的工件 X。Jenkins 被配置为在每次 Y 提交时构建 X。
策略 A(工作空间 Maven 存储库):
本地 Maven 存储库配置为“工作空间本地”。这意味着每个构建的作业都有自己的存储库。Y 的提交确实会触发构建(“mvn clean install”),但由于构建 X 和 Y 的存储库是隔离的,X 使用最后部署的 Y 版本,而不是最后一次提交。
使用此策略似乎有助于检测是否还部署了所有依赖项,但它不会检测集成问题(损坏的 Y 提交中断 X)。
策略 B(通用 Maven 存储库):
Jenkins 使用通用的本地 Maven 存储库。提交(损坏的)Y 快照会触发使用当前 Y 快照的 X 的构建,并且会检测到集成问题。缺点是,这不会检测是否所有构建依赖项都部署到中央快照存储库(因为 CI 系统确实将它们全部安装在本地存储库中)。
有没有一种结合了 A 和 B 优点的策略?