持续集成--01构建工具概览

#《持续交付 发布可靠软件的系统方法》Page116

1.构建工具都有一个共同的核心功能,即可对依赖关系建模。

2.每个构建任务包含两点:

2.1 它做什么

2.2 它依赖于什么

3.构建工具的不通点在于它是任务导向的,还是产品导向的。

3.1 任务导向:Ant、NAnt、MSBuild。每个任务都知道自己在构建构成中是否被运行过,所以任务被调用两次,也只会执行一次

3.2 产品导向:Make。将状态以时间戳的形式保存在每个任务执行后生成的文件中。这在编译C或C++程序时非常好,因为Make会保证只编译上次构建够发生过修改的源代码文件。

4.Make

能在单次构建中追踪依赖关系,还能只构建那些受到本次修改影响的组件。当编译时间占时间成本时,对于提升团队开发效率很有用。

4.1 Make缺点一:随着应用程序复杂程度和组件之间依赖关系的增加,让Make难以调试。

为了使这种复杂性更易控制,一个常见的约定是在每个目录下创建一个Makefile,最上层的Makefile会递归调用每个子目录中的Makefile。

4.2 Make缺点二:它依赖于shell做所有的事情,Makefile就不得不和操作系统绑定在一起。

5.SCons

是一个Python写的自动化构建工具,和GNU Make相比优点明显(暂未遇到,后续补充)

 

posted on 2018-07-22 13:08  CevinChen  阅读(213)  评论(0编辑  收藏  举报