[原创]每日构建实践篇(一)
来源:互联网 发布:乌托邦网络 编辑:程序博客网 时间:2024/06/05 08:54
看了Joel Spolsky的《软件开发成功12法则》和《Daily Builds are Your Friend》,对于每日构建的必要性和实用性都深有感触。于是为自己的项目添加脚本以实现快捷的每日构建,并记述这个尝试的整个过程,方便以后参考。
所谓的每日构建就是每天至少一次的重新创建整个工程,每日构建本身只能算是一个保护代码有效性和快速修改快速出品的手段,但是要想快速将项目成果由代码构建成最终出品形式(如安装程序,CD镜像等)就需要一套工具的支持还有相应脚本的设定,每日构建需要做的工作正是实现这个过程。
每日构建过程中有很多环节,基础流程是从源代码管理系统中取出最新版本的源码,然后通过编译器编译,最后使用安装程序打包。我首先由从源代码管理系统中取出最新版本的源码开始。
这里讲解的是Visual SourceSafe的流程。
VSS本身有Command Line模式,按照帮助文档中的说法,Command Line的命令可以实现VSS界面程序的所有功能。而我现在只需要他的Get(获取最近版本),命令行如下:
ss get $/vss_code -I-Y -R -GLc:/daily_build_code -O@mycode.log
| |
Ss | VSS Command Line模式的启动程序名 |
Get | 获取最近版本的命令名称 |
$/vss_code | 希望获取的程序路径,该路径可以通过VSS窗体程序的右键属性功能获取 |
-I-Y | 对提问回答Y,如果没有这个参数则运行命令会在提问时等待用户输入。回答N,是-I-N |
-R | 递归获取,会把该目录下的所有子目录都取出来 |
-GLc:/daily_build_code | 用来指定获取源码的路径,如果不设置则使用VSS的默认工作目录 |
-O@mycode.log | 指定所有信息输出到log文件 |
注意1:这里指定了工作路径,一般来说为了构建能够不受原有环境的影响,最好每次构建都重新建立路径。如果有可能应该专门提供一台机器用来做每日的构建。
注意2:如果不指定log文件的绝对路径的时候,log文件会被建立到当前路径,如果你频繁的使用cd,md命令很可能会使这个位置不确定,所以建议使用绝对路径来指定log文件的位置。
以上的命令虽然是用来获取最近版本的,但在现实中还需要设置当前的环境变量。
如果你的VSS的服务端不在本机,需要指定服务路径,如下:
set ssdir=//my_vss_server/vss_code
还需要指定用户名和密码,如下:
set ssuser = snail
set sspwd = chinaos.com
另外,如果你没有将VSS路径加入系统设置中,需要指定VSS路径:
set path=c:/program files/microsoft visual studio/common/vss/win32/
最后要注意的是,因为指定了新的工作路径,你需要保证该目录的有效性。
这些工作都做完,得到的脚本用批处理表现出来就像下面的样子:
// vss.bat
set ssdir=//my_vss_server/vss_code
set ssuser=snail
set sspwd = chinaos.com
set path=c:/program files/microsoft visual studio/common/vss/win32/
c:
cd /
md daily_build_code
ss get $/vss_code -I-Y -R -GLc:/daily_build_code -O@mycode.log
VSS Common Line提供的其他命令和参数,请参看VSS的帮助文档
- [原创]每日构建实践篇(一)
- [原创]每日构建实践篇(二)
- 每日构建实践篇
- ccnet +msbuild +svn 每日构建( 一 )
- 项目管理实践----每日构建
- 自动化每日构建(一)用Ant来完成Delphi工程的每日构建
- 项目管理实践【三】每日构建
- 探索实践之软件构建(一)
- 每日构建系列(1):入门篇
- 每日构建系列(2):架构篇
- 【原创】彼得德鲁克《管理的实践》札记(一)
- Daily Build (每日构建)
- 应用系统基础构建设计开发实践(一)
- 每日构建
- 每日构建
- 【每日一题】2012.6.29:全排列问题(非原创)
- 天津SEO每日一贴 网址提交工具(原创)
- 每日阅读(一)
- JAVAGUIDE(学习笔记2)
- netstat 的一些常用选项
- 《没有任何接口》读书笔记_20041012:可以做的更好
- delphi编程的问题!急急急
- 浅谈管理软件的核心竞争力 --- 参加2004 IBM UNIX World 演讲的感触
- [原创]每日构建实践篇(一)
- 写code的时候觉得写code累,写文字的时候觉得写文字累
- 项目团队与西游记
- 消息初接触
- synchronized
- 《没有任何接口》读书笔记_20041012:做一个优秀的员工的“标准”
- 采用Hibernate的简单数据访问层
- 调用system函数时,如何隐藏其dos窗口
- xampp-1.4.9 for Linux, Windows