kots's profile光荣与梦想——永远的CCCPPhotosBlogListsMore Tools Help

Blog


    February 15

    开源工具在软件开发流程中的应用

    在软件开发过程中,如果能够利用一些开源工具,常常可以收到事半功倍的效果。

    某产品型项目,应用户要求,分为ABCD四个版本。而且各版本之间相同的代码最低有90%,最高占到99%。A版本为主流版本,其他版本均由A衍生而来。其中,B为特别定制版本,与A的相似度为90%左右,CD与A的差异较小,大约95%左右。而CD的不同点仅在于部分提示信息。而且,由于项目需要,要求安装程序可以自动安装软件所需组件。

    1、NSIS的应用

    VS2003虽然提供了制作msi安装程序的功能,但是功能很弱,无法做到精确控制安装过程。NSIS提供了强大的脚本功能,可以保证精确控制整个安装过程。

    2、SVN的应用

    就本例来看,VSS存在以下不足:1、如果公共代码有变化,需要做4次修改。2、版本间切换不便,导致生成安装包的过程繁琐,耗时一般在15分钟到半小时之间。

    SVN的Branch/Merge机制可以很好地解决第一个问题,而SVN提供的命令行操作则可以为第二个问题的解决提供一条解决之道。

    因此,本例最后采用SVN作为本地代码库,配合NSIS制作安装程序。但是打包过程需要同时对3到4个版本进行处理,依然比较繁琐。而现有开源自动构建系统均基于XML,配置不便。故使用批处理编写简单的自动构建脚本。

    效果:当所有修改均提交后,直接双击相应的批处理文件,在2分种内即可生成某个版本的安装程序。