深入理解软件构造系统——1
1.如果一套良好的构造系统会失去什么?为了获得构造系统的更多经验;
2.构造系统的各个部分
开发工具
版本控制工具
编译工具和构造工具
构造机器
发布打包和目标机器
3.构造过程和构造描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a3bFXiSr-1675903617970)(img.png)]
4.如何使用构造系统
开发人员(本地)构造——每次对源代码进行多次修改进行增量式编译
发布构造——发布工程师(release engineer),给测试小组提供一个发布包进行测试
只编译一次就进行冻结-然后交付
健全性构造
对源代码进行基本的健全性测试,保证质量
文件类型和编译工具
1.将PATH环境路径名设置为绝对路径,而不是操作系统在当前目录中查找(避免这种代漏洞的设计)
tips:
hadoop的环境变量的设计
2.使用动态链接库大大提升系统的复用灵活性
子标和构造变量
1.针对子标(sub target)进行构造
如果只是对源码树上的某个局部进行修改增量编译——对子标进行构造
2.针对软件的不同版本进行构造
全套源码进行编译,通过输出结果进行定制化处理。比如不同产品类型和不同语言的支持
3.针对不同的目标系统架构进行构造
比如针对ARM或者X86架构进行针对性编译进行架构的适配
或者针对不同的操作系统进行适配编译
例子
固件编译