6.8构建管理工具

构建管理工具支持源代码和相关工件的版本控制自动化、编译、打包、测试和检查任务。 这些包括: • 翻译和转换任务的管理(编译、链接、部署) • 持续集成管理 • 依赖管理(参见章节6.9) • 自动化测试的执行和报告 • 检查是否符合结构规范和编程约定

6.8.1需求和决策标准

• 构建过程可定义(即,可以根据系统特定的基础定义构建所需的步骤) • 传递依赖的最小化解(即在构建运行中重新翻译或重新链接绝对必要的最少文件数量) • 与版本和配置管理工具、代码分析、自动化测试的执行及其相关报告的集成 • 持续集成工具和流程的界面 • 支持不同的编程语言和工具 • 构建过程运行的速度

6.8.2构建管理工具面临的挑战

• 大型系统的构建管理是资源密集型的 • 构建的描述/定义需要与部署视图中的决策同步 • 目前对于构建描述没有既定的标准语法/语言。大多数构建工具使用自己的语言/语法。 • 系统使用多种编程语言(多语言编程)构建,包括编译和解释系统的混合

6.8.3 示例

• Apache Ant(构建工具,主要用于Java系统,使用XML进行任务描述) • Apache Buildr(许多Java虚拟机语言的构建系统) • Apache Ivy(支持Java构建,能够从存储库后续加载所需库的特定版本) • Apache Maven(用于广泛构建任务的构建工具,为目录和文件结构指定约定,使用分层组织的XML文件进行定义) • Gant或Gradle (Ant等价于Groovy) • Make、NMake(此类中的原始工具) • Rake (Ruby的Make工具) • Team Foundation Server(微软商业构建和代码管理)

Last updated