我使用开放源代码项目已有一段时间,并且一直在开发开放源代码应用程序,每隔一段时间我会碰到“ Nightly Build”一词,而我一直对它的真正含义感到好奇。从字面上看,这是否意味着这些项目纯粹是作为副项目完成的(通常是在每个人完成日常工作后的晚上),并且没有真正的贡献者/专门的开发团队,还是比这更复杂?
我使用开放源代码项目已有一段时间,并且一直在开发开放源代码应用程序,每隔一段时间我会碰到“ Nightly Build”一词,而我一直对它的真正含义感到好奇。从字面上看,这是否意味着这些项目纯粹是作为副项目完成的(通常是在每个人完成日常工作后的晚上),并且没有真正的贡献者/专门的开发团队,还是比这更复杂?
Answers:
不,这意味着每天晚上都会构建已检查到源代码管理中的所有内容。该构建是“每晚构建”。
通常,它意味着每天进行一次自动构建,对于大多数开发人员而言,通常在一天结束后。对于具有多个时区的开发人员的项目,通常是一个折衷时间。这个想法是,每个要“今天”签入代码的人都已经这样做了,自动构建将确保所有内容都能编译,并希望运行单元测试和任何其他自动测试等,然后生成最终安装程序/可执行等
该术语通常用于大型项目,在这些项目中,从源头完全重建成品需要花费很长时间,单个开发人员无法将其作为正常开发周期的一部分来完成。
取而代之的是,夜间会自动完成一次完整的重建,因此构建计算机有8-10-12个小时的时间进行构建,并为第二天早上来的开发人员做好准备,因此他们可以继续在顶部单独工作新版本。
如今,经常会在项目中进行大量测试,以确保代码正确运行,并从源代码生成和发布文档(例如javadoc)。
每晚构建是一件好事,如果他们破坏了构建,它们会立即反馈给开发人员。每晚进行构建意味着该软件稳定并且很可能为新用户构建。非常规构建的软件很难发布。