我们有一大群项目。它是使用 ant 目标构建的,这些目标调用了一堆单独的 maven 项目。
问题是,每当开发人员同事将代码提交到与我正在处理的项目不同的项目时,我都必须更新代码并在本地重新构建,以确保我正在根据最新版本进行编译。这涉及每次等待 30-60 分钟以测试代码更改。
我们希望从“快照”jar 运行所有项目,因此每次发生代码更改时,我们的本地构建应该只下载最新的快照。
有人担心,由于持续集成服务器需要一个多小时来构建项目,我们的快照可能比最新代码晚一个小时,并且基于它们构建并不能保证我们的代码编译符合最新的。
这是一个普遍的问题吗?如果是,如何缓解?对于转而使用快照所获得的值(value),我可以向我的团队提出任何好的论据吗?
最佳答案
如何让任何更改组件接口(interface)的人也负责确保所有依赖于它的组件仍然有效,即单个提交包含 API 更改、实现更改以及使所有其他组件构建所需的更改新版本。
这鼓励对不兼容的 API 更改进行长时间和认真的思考,并且在提交不再编译的组件时也会导致版本控制中的明确冲突。
根据您的内部政策,您还可以允许引入新的 API,同时将旧版本标记为已弃用,同时仍然保持功能不变;但是,我发现这对您的开发人员同行有些不礼貌。
关于java - 构建快照与本地编译代码的争论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818603/