我正在尝试使用Ant和MSBuild自动化我的项目(包括java和.net)的构建过程。我已经阅读了他们,并知道如何在Ant和MSBuild中编写构建脚本。但是我想知道,一般来说编写构建脚本是否有任何指导原则或最佳实践?以下是我找到的两个,但我希望听到其他开发人员的更多信息。在Ant或MSBuild中编写构建脚本的任何最佳实践
- 在编写构建脚本,仅仅依赖于位于 源控制和工作文件夹数量有限, 签出源代码的项目。不要编写依赖于源代码管理中未保留的项目的构建脚本,它们是 。
- 如果一个项目包含一组子系统,并且每个子系统都有其自己的构建脚本,则该项目的构建文件应该只调用 子系统的构建脚本。此外,这些文件应该导入包含目标,如编译,测试,封装等
我见过this post以及共同构建文件,但它是对写作任务的方式详细。如上所述,我需要更高层次的指导方针。
下面是我从答案中收集的准则:
- 运行间隔建立一个干净的环境。这意味着每个构建脚本需要一个
clean
目标。 - 构建脚本通常应包括
compile
,package
和test
目标。 - 如果某个产品有不同的开发线(例如dev,release),则它们都应该具有相同的构建脚本。但是,不同的 参数应该传递给这些脚本。
- 在开发线上执行的构建通常包含编译, 打包,部署和安装步骤。但在版本 上构建的产品线包括进一步的步骤,例如标记产品和生成更改日志/发行说明的 。
- 构建脚本也应该保存在源代码管理中。
- 尽量保持所有的构建脚本构建信息,并不 持续集成服务器(竹,TeamCity的,等等)上
- 如果您的构建使用参数可能会在未来发生变化(例如 网络地址复制编译结果),请不要将其硬编码为您的构建脚本中的 。相反,使用构建参数可以很容易地控制它更多 。
谢谢大卫。您的意见非常有价值。 – hsalimi