选择自动化构建工具时需要考虑的5个事项
有许多可用的自动化构建工具(Automated Build Tool),有些是免费的,有些非常昂贵,还有很多处于两者之间。 这些工具各不相同:不同的架构、不同的特性、不同的用户界面等。 在您决定使用一种工具来帮助您构建软件之前,有许多事情需要您考虑;下面我们列出了5个非常重要的事项:
1. 选择一个您可以信任并得到良好支持的工具。
您的构建工具将用来构建要发送给您的客户的软件,您需要能够信任此工具。 确保此构建工具已经存在一段时间,并且有高知名度的客户使用该软件;这可以为您保证构建引擎是健壮的。 当出现问题时,不管是错误(bug)还是可用性问题,您将如何获得支持以及从哪里获得支持?工具供应商是否为产品的生命周期提供免费支持?是否有一个社区论坛,以供您在那里讨论想法、提出建议和报告错误(bugs)? 供应商对错误(bug)报告的响应速度有多快?
2. 该工具应该支持您当前使用和将来可能使用的大多数或所有工具。
让我们面对这一点,您不是在寻找一种像批处理文件那样基础的工具。 构建工具需要将您要自动化的那些工具的复杂性隐藏起来,例如您的编译器、安装构建器、版本控制系统等。 您真的关心您的编译器需要使用哪些命令行参数吗?当然不是,填写一个名为“项目文件”的字段并点击一个名为“在项目中包含版本信息”的复选框,要容易得多。 另外,考虑一下您将来要使用什么工具。 也许您正在考虑切换到使用.NET编译器,也许切换到TeamSystem或其他的版本控制系统(Version Control System)。 另外,将信息从您的构建过程中的一个步骤传递到另一个步骤有多容易?存储、加载、操作和应用版本信息会让事情变得容易吗? 您能下载一个30天功能完整的的评估版本吗? 是否有退款保证来支持供应商的索赔?
3. 从长远来看,免费不一定更便宜。
我们听说许多NAnt和ANT用户已经准备好继续使用。 是的,它们是开源产品(例如,免费),但是它们通常要花更长的时间去掌握——请记住您的时间不是免费的。 如果您厌倦了支付“尖括号税”(angle bracket tax),那么寻找一个可以让您轻松创建、修改、调试和运行您的构建的工具。 还要考虑到将来有人可能会接管这些构建;让一个新人学习该软件有多容易?
4. 用户界面容易使用且功能强大。
这一点在其他方面已经提到过——但用户界面是非常重要的。 要找到一个快速、丰富、易于使用和现代的用户界面(UI)。 用户界面(UI)支持拖&放吗?用户界面(UI)是否为构建过程中的每个步骤提供了自定义编辑器?是否有像变量监视、分层级日志记录、暂停、运行当前动作等调试辅助? 在日志中查找信息容易吗(例如,查找错误中的所有步骤)?您可以在构建步骤中进行查找和替换吗?例如,您可能希望在您的整个构建过程的所有步骤中将对C:\Projects的所有引用更改为引用C:\Build\Projects。 您可以轻松地将您的构建分解为更小、更容易管理的部分吗? 在构建运行时,是否有一种简单的方法来查看构建过程的进度?
5. 任何构建工具的重要特性集。
我们进行构建方面的工作已经相当一段时间了,随着我们客户的不断反馈,我们已经非常了解一个构建工具中哪些特性是非常重要的:
- 出色的用户界面(参见第4点)
- 将日志记录到数据库引擎——存储并检索日志信息的唯一可靠方法
- 并行运行构建步骤 ——这对于减少用来运行您的构建的时间非常重要
- 支持软件开发人员使用的大多数工具(参见第2点)
- 向构建引擎添加新功能的简单方法(特别是在自定义内部inhouse工具需要被自动化的情况下)
- 灵活的流控制,例如if/then/else、switch/case、for/while循环
- 像 try/except/finally这样的错误处理步骤 ,以及对任何未处理错误的全局处理