[原创]每日构建实践篇(一)

原创 2004年10月12日 15:19:00

看了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的帮助文档

[原创]每日构建实践篇(二)

     之前我们已经获取了当前项目的所有的代码,并把他们放入了指定的目录。下面是如何构建这些代码。本文以介绍VC的批处理过程,要注意的是,VC6的处理过程和VC.NET是不同,首先我们来看VC6如何...
  • snaill
  • snaill
  • 2004年10月13日 13:11
  • 1488

每日构建实践篇

收藏文章。原文作者:snaill  ,来自http://blog.csdn.net/snaill/archive/2004/10/12/133673.aspx每日构建实践篇看了Joel Spolsky...
  • cpluser
  • cpluser
  • 2004年10月20日 15:13
  • 1243

每日构建 Daily build

一个好的办法是每日构建(daily builds)。 每日构建意味着自动地,每天,完整地构建整个代码树、(译者按:“代码树”,原文为source tree,意思是将整个项目源代码的目录,子目录,文件的...
  • u013890660
  • u013890660
  • 2014年03月17日 10:49
  • 997

一年多推行每日构建的经验总结

作者:朱金灿来源:http://blog.csdn.net/clever101         早在主持开发产品新版本之初,我就有一个略显激进的想法:新产品的测试版本发布频率至少在一周之内。开发人员倾...
  • clever101
  • clever101
  • 2014年08月31日 21:52
  • 3162

持续集成与每日构建

  每个经历过完整游戏项目开发的人都永远会清楚的记得从开发到运营阶段所经历过的那些痛苦:枯燥的代码提交、代码更新、编译、提交可执行程序再到测试的过程;永远改不完的BUG;修改了一处BUG结果引入了更多...
  • lfhfut
  • lfhfut
  • 2009年02月07日 10:27
  • 3472

每日构建系列(1):入门篇

关键词:Daily Build、CI、CCNet、CCTray、VSS、SVN、MSBuild、NAnt、NUnit、Email、FxCop、NCover、NCoverExplorer、RSS、SCM...
  • u013948187
  • u013948187
  • 2015年12月13日 22:56
  • 303

每日构建与持续集成联系与区别

每日构建与持续集成联系与区别 1)持续集成(Continuous Integration)贵在速度,强调一个快速反馈。      比如我一签入代码,就立刻集成,给我一个反馈,我要知道我的代码是否破坏...
  • xifeijian
  • xifeijian
  • 2013年07月18日 00:04
  • 7166

Daily Build--每日构建

在我现在的游戏项目中,基本上每天都要代码,各种游戏资源需要更新。而且每次从SVN服务器上更新代码后都要编译好久。另外资源的更新也是一件很麻烦的事情,因为我们的所有游戏资源都是统一放在一个FTP上面,每...
  • yiweibin
  • yiweibin
  • 2010年03月16日 21:01
  • 4458

平台软件每日构建总结

在以往的软件研发过程中,存在一个比较严重的问题:测试版本发布周期长,严重时长达两个月无法发布测试版本。为了有效解决这个问题,我在主持开发公司平台软件的过程中采用了现代软件工程的每日构建。这里简要介绍下...
  • clever101
  • clever101
  • 2017年04月10日 19:08
  • 2132

必应每日一图接口

访问网址:http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 得到以下的JSON返回数据: {   "images": [     {...
  • xuaho0907
  • xuaho0907
  • 2017年07月05日 11:36
  • 1143
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[原创]每日构建实践篇(一)
举报原因:
原因补充:

(最多只允许输入30个字)