1.1 项目系统集成发布的实施方案
项目最终产品即目标系统由各个构件和引用的第三方开发包共同组装而成,可以认为其源码就是各构件的源码,必须纳入配置管理只剩下构建脚本和专门用于验收测试的代码。
针对上述特点,本项目对系统的源码结构组织如下图所示:
目录
说明
备注
build
构建脚本
纳入配置管理
test/ example
验证系统是否成功编译、安装的测试或示例代码
如果另行编写或修改了其它构件的测试代码则纳入配置管理
include
系统作为开发包发布的公开头文件(即Interface)目录
通常由构建脚本在安装步骤中自动拷贝
lib
系统作为开发包发布的静态库
通常由构建脚本在安装步骤中自动拷贝
doc
用户参考文档
通常由构建脚本在安装步骤中自动拷贝
bin
可执行文件和动态库
通常由构建脚本在安装步骤中自动拷贝
构建脚本的执行步骤:
首先执行初始化(-Init),准备好编译工具配置;执行清除工作(Clean),得到干净的工作空间;完成构建准备(-Prep),创建一些临时目录和目标目录(lib);开启安装过程(Install),分别从其它构件和第三方开发包将要发布的公开头文件(即Interface)自动拷贝到include下,将要发布的用户参考文档拷贝到doc下,将要发布的静态库拷贝到lib下,将要发布的可执行文件和动态库拷贝到bin下,最后再设置一个环境变量指向当前系统运行映像根目录;执行测试准备(-TestPrep),从其它构件组织相关的测试代码,拷贝到test/example下;进行测试构建(TestBuild),生成测试执行文件;执行测试(Test),验证系统发布安装成功,使用它进行二次开发的构件可以正常编译,并且可以通过测试。
1.2 批量构建步骤
为了方便构建工作,通常通过批处理的方式,按依赖顺序执行第三方开发包、项目子构件、和系统集成发布的所有构建步骤。\PCHL_System\Integration\build目录下有一个批命令脚本all.bat,用于自动执行上述过程。
批处理的方式主要通过Ant提供的子Ant项目执行功能来实现,详见相关批处理XML文件。
第三方开发包Libraries批处理脚本放在\Libraries\libs_bundle\batch-build下,通过批处理最终将生成汇集所有第三方开发库的3d_party.lib(在批处理过程的最后调用\Libraries\libs_bundle\build下的构建脚本生成,并放置于\Libraries\libs_bundle\lib下)。
基础设施Infrastructures批处理过程与Libraries类似也生成infrastructures.lib(放置于\Infrastructures\infrs_bundle\lib下)。
系统集成发布在\PCHL_System\Integration\build目录下有一个批处理脚本batchbuild.xml,将自动调用所有构件的构建脚本,并在最后调用集成发布构建脚本,生成系统的发布映像。