zoukankan      html  css  js  c++  java
  • 每日构建(一)

         每日构建(二)

         以前在做项目时,并没有觉的每日构建有多么重要,前公司主要给本公司做项目,项目自己人用,也没觉的编译,部署有多么麻烦,之后到了其它公司才发现,每次去部署一次所花的时间和精力真是太伤神了。

         难度一:公司要部署的项目特别多,每个项目都亲自去获取源码,编译,发布,就这工作量也不少,更不用说这工作的枯燥性。

         难度二:多语言版本的项目。是那种动态加载控件来实现的,即每种语言都创建一个用户控件,它们共享同一个后台代码,部署的时候,我们需要把一个项目分成和语言种类相同数目的站点,也就是说,中文站点中只会包含中文用的控件,英文只会包含英文控件等等,这种情况下MS的发布功能就不能胜任了。

         难度三:测试阶段,往往在后期部署的频率会非常高,这样如果手工去完成打包的工作,会占用太多的工作时间。

         目前有很多工具都能很好的完成以上功能,但大多都不够完美,不是这有问题就是那有不足,所以可以综合几个工具的特点,让它们各自发挥特长,这里我采用的组合如下:

         1:CCNET:是一个代码开发阶段流程的自动管理监控工具;所包括的流程有根据设定的任务从指定的代码库中CHECK OUT代码、然后自动编译、自动代码检查、自动单元测试,并将编译和测试的结果进行记录和反馈(EMAIL方式等),并有还算不错的WEB应用平台进行呈现,也支持一部分的分析工作。我主要用它来做主流程的控制,因为ccnet有非常好用的web平台。
           参考:http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

         2:SVN:源代码管理工具。

         3:msbuilder:主要应用它来编译项目。

         4:nant:请参考此链接http://nant.sourceforge.net/,众多功能中,我只应用了它复制文件的功能。

         5:winrar:应用方面:增量压缩,即压出的包只包含某一个时间之后修改的文件内容。这样可以大大缩小包的容量。

         主旨:这一篇主要分享下ccnet的简单应用。
      
         下载ccnet后,进行安装,会默认生成一个ccnet的虚假目录,然后在运行前我们需要做一此相关配置来让ccnet运行起来。在ccnet安装目录下有一个server子目录,里面的ccnet.config就是我们需要修改的。ccnet支持多版本,例如公司的项目由于上线时间不统一,会开出几个版本来开发,配置文件中以project节点来做区别,一个project节点代表一个项目版本。配置文件的详细文档说明请参考官方网站。这里我来总结些简单且重要的几个节点。

         1:sourcecontrol:源代码管理,支持很多种源代码管理软件,这里我用svn。
            1>: trunkUrl:项目路径。
            2>:workingDirectory:本地项目存放路径。
            3>:executable:svn程序路径。
            4>:username:源代码用户名
            5>:password:源代码用户密码
            6>:timeout:超时时间。


         2:triggers:触发器配置,可以设定两次执行持续集成的间隔定期执行。这里我采用intervalTrigger。
         3:tasks:任务配置

            1>:modificationWriter/modificationReader:这两个节点主要用来配置文件修改记录的日志。每次更新的工程文件信息都会被记录在节点所配置的文件中。
            2>:msbuild:工程编译配置。
                 (1):executable:C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe,如果是2.0版本需要修改下版本号。
                 (2):workingDirectory:工程解决方案所在文件夹。
                 (3):projectFile:解决方案文件名。
                 (4):buildArgs:编译时的一些参数设置。可以指定编译的版本是Release或者是Debug等。
                 (5):timeout:超时时间。

             3>:nant:ccnet直接支持nant的应用。
                 (1):executable:nant程序所在位置。

                 (2):baseDirectory: 工程文件位置

                 (3):buildArgs:需要执行的参数和内容。
                 (4):buildFile:nant对应的脚本文件路径

         4:publishers:发布相关配置及编译结果反馈设置。ccnet运行发布完后的后续操作,例如发送执行结果邮件给相关人员参考和跟踪。
             1>:exec:主要是配置相关发布设置。
             2>:executable:要执行的批处理文件
             3>:baseDirectory:批处理文件所在文件目录地址

             4>:email:邮件相关配置。
                 (1):users:接收邮件的用户邮件地址。
                 (2):groups:邮件组。

         运行界面如下图所示:

        
      
          待续......

  • 相关阅读:
    使用MyBatis时接收值和返回值选择Map类型或者实体类型
    如何在开发时部署和运行前后端分离的JavaWeb项目
    6月22日项目CodeReview问题及总结
    【转载】CSRF攻击及其应对之道
    【转载】MySQL事务以及SELECT ... FOR UPDATE的使用
    win10打开SQLServer, SQL Server 配置管理器
    iframe标签和frame标签异同
    8款让你耳目一新的软件开发工具
    快速开发平台的比较
    CSDN:Java Web 开发平台 WebBuilder 专访
  • 原文地址:https://www.cnblogs.com/ASPNET2008/p/1576565.html
Copyright © 2011-2022 走看看