最近参与的一个项目,也是第一个以AD的身份参与的项目。第一次嘛,对谁都很重要,因此一定要把这个项目做好,所以在项目开发过程中就引入了项目的持续集成和构建管理。
引入构建管理的目的就是让项目的构建和交付自动化,促进软件开发的良性循环。引入持续集成则是主张在频繁的执行构建的过程中能尽早的发现并消除由集成而引入到软件产品中的错误。如果在软件开发过程中,如果没有很好的管理,那只能是:前人种草,后人除草。所以每个维护项目的孩子,上辈子都是折翼的天使,遇到就嫁了吧。好了,废话不多说了,下边进入正题。
这次项目采用的持续集成架构是 windows环境下Subversion+CruiseControl+ant,其中Subversion是源代码控制系统,CruiseControl为持续集成服务器,ant为自动化构建脚本。说到这里在扯一下maven,有很多人说用maven比ant好,可是好多事情都要一分为二的来看,不是所有的牛奶都是特龙苏,同样不是所有的项目都适合用maven进行自动化构建。
软件下载:
Subversion服务器: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91
Subversion客户端:http://tortoisesvn.net/(服务器和客户端得版本要一致哦)
CruiseControl(cc)持续集成服务器:http://cruisecontrol.sourceforge.net/download.html
将项目中的源代码用Subversion进行管理,然后安装CruiseControl。将cc安装好之后,可以查看下他的目录结构,projects文件夹下边存放的是要构建的项目,将要构建的项目检出到该文件夹下。config.xml配置文件中增加对该项目的配置:
<cruisecontrol>
<project name="syljg">
<!-- 监听代码是否有更新-->
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<!-- 构建时执行的build.xml-->
<bootstrappers>
<antbootstrapper anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="clean" />
</bootstrappers>
<!-- 设置轮训更新svn服务器上的代码-->
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}" RepositoryLocation="http://svn-server2:8080/svn/mzylfl/${project.name}" username="renhanxiang" password="rhx" />
</modificationset>
<!-- 设置执行构建间隔->
<schedule interval="60">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<!-- 构建成功之后生成war包->
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.war"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
双击cruisecontrol.bat启动服务器,然后再http://localhost:8080/dashboard中查看构建结果。
这样的话,每次开发人员将源代码和测试代码提交到svn服务器上之后,cc自动检测更新然后自动执行测试用例和进行项目构建,有效的保证了代码的质量,确保每次生成的都是一个可发布的产品。
相关推荐
企业IT持续集成与持续交付实践 持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)是企业IT实践中两个非常重要的概念,它们之间紧密相连,都是为了提高软件开发、测试和部署的效率和...
- **持续集成**:它是日常构建概念的延伸,借助自动化工具的支持,能够在设定的时间间隔内(如30秒)自动执行集成构建与测试,从而及时反馈新提交代码的编译和测试结果。 #### 角色与职责 构建集成过程涉及多个关键...
在"5.Jenkins持续集成网站构建实战"中,我们将深入探讨如何利用Jenkins来搭建和管理一个自动化的网站构建流程。首先,我们需要安装Jenkins服务器,这通常是在Linux或Windows服务器上进行。安装过程中会涉及下载...
持续集成环境在项目管理中的应用是一项提升软件开发效率和质量的重要实践,它要求开发团队频繁地将代码集成到主干。本文将深入探讨持续集成环境的搭建以及其在项目管理中的具体应用。 首先,搭建持续集成环境依赖于...
研究识别了30种方法及其相关工具,这些方法和工具在以下方面促进了持续实践的实施:1) 缩短持续集成(CI)中的构建和测试时间;2) 增加CI中构建和测试结果的可见性和意识;3) 支持(半)自动化连续测试;4) 检测CI中...
Hudson是一个开源的持续集成服务器,它可以监控和执行项目的构建任务,提供实时反馈,帮助团队保持高质量的代码库。 【Hudson做增量发布】是指在每次代码变更后,仅构建和测试变化的部分,而不是整个项目。这减少了...
在实施持续集成时,需要考虑如何配置源码管理库(如Git、SVN等),使用何种持续集成工具(如Jenkins、Travis CI、GitLab CI等),以及如何执行基本构建验证测试(BVT)。BVT是指在持续集成过程中,为了验证最基本的...
《持续集成:软件质量改进和风险降低之道》一书深入探讨了如何在IT行业中通过持续集成来提升软件质量并有效管理风险。持续集成是敏捷开发方法的重要组成部分,它强调频繁地将开发人员的工作成果合并到主分支,以尽早...
《Jenkins持续集成网站构建实战》是一门深入探讨如何利用Jenkins进行高效自动化构建和测试的课程。在当今快速发展的IT行业中,持续集成(Continuous Integration, CI)是软件开发过程中的重要环节,它有助于减少错误...
【持续集成与自动化测试】 持续集成(Continuous Integration, CI)是一种软件开发实践,它强调开发人员频繁地将他们的代码更改合并到主分支,通常每天至少一次。这一过程伴随着自动化构建和测试,以尽早发现和修复...
Teamviison 通过任务流功能支持流水线构建发布,正真做到高效的软件过程管理与监控。eamvision践行持续交付理念,实现从业务需求到产品上线的全流程管理能力。提供业务需求协作,测试管理,制品管理,代码与配置...
Jenkins 是一款强大的开源持续集成(Continuous Integration, CI)工具,它被广泛应用于软件开发过程中,以自动化构建、测试和部署任务。通过Jenkins,开发者可以实时监控代码更改,自动触发构建过程,确保项目的...
此外,在持续集成实践中,需要正确处理构建和测试环境,保证环境的一致性和干净,以避免因为环境差异导致的构建或测试失败。在一些高级的持续集成实践中,还可能包括了蓝绿部署、金丝雀发布等高级部署策略,以进一步...
在持续集成管理平台中,项目构建工具 plays a crucial role in automating the build process. 它可以帮助自动化编译、测试、打包等步骤,提高软件开发的效率。 代码质量管理 代码质量管理是软件开发中非常重要的...