zoukankan      html  css  js  c++  java
  • 持续集成--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相比优点明显(暂未遇到,后续补充)

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/cevinchen/p/9349825.html
Copyright © 2011-2022 走看看