java - 构建快照与本地编译代码的争论?

标签 java maven-2 ant continuous-integration compilation

我们有一大群项目。它是使用 ant 目标构建的,这些目标调用了一堆单独的 maven 项目。

问题是,每当开发人员同事将代码提交到与我正在处理的项目不同的项目时,我都必须更新代码并在本地重新构建,以确保我正在根据最新版本进行编译。这涉及每次等待 30-60 分钟以测试代码更改。

我们希望从“快照”jar 运行所有项目,因此每次发生代码更改时,我们的本地构建应该只下载最新的快照。

有人担心,由于持续集成服务器需要一个多小时来构建项目,我们的快照可能比最新代码晚一个小时,并且基于它们构建并不能保证我们的代码编译符合最新的。

这是一个普遍的问题吗?如果是,如何缓解?对于转而使用快照所获得的值(value),我可以向我的团队提出任何好的论据吗?

最佳答案

如何让任何更改组件接口(interface)的人也负责确保所有依赖于它的组件仍然有效,即单个提交包含 API 更改、实现更改以及使所有其他组件构建所需的更改新版本。

这鼓励对不兼容的 API 更改进行长时间和认真的思考,并且在提交不再编译的组件时也会导致版本控制中的明确冲突。

根据您的内部政策,您还可以允许引入新的 API,同时将旧版本标记为已弃用,同时仍然保持功能不变;但是,我发现这对您的开发人员同行有些不礼貌。

关于java - 构建快照与本地编译代码的争论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818603/

相关文章:

java - 如何获取Bitset的真实长度?

maven-2 - 继承 Maven 配置文件

ios - ANT- 如何针对不同环境递归构建 iOS 项目?

java - apache tiles 与自定义 tagx ("fragment")

java - NetBeans 中的 Glazed Lists EventTableModel 类

java - jdbc 中的 postgres 驱动程序出错

java - 我如何强制 Maven 将我的项目打包为 1.5?

java - 如何从 war Maven 程序集中排除包含文件的文件夹

ant - ant 和 ant clean all 的区别?

java - 如何找到正在执行的 ant 目标的名称?