- 浏览: 151836 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zengsir2008:
怎么运行?
osgi ds 实例 -
liuyinhou:
用eclipse带的org.eclipse.osgi org ...
osgi ds 实例 -
liuyinhou:
怎么运行?
osgi ds 实例 -
wdhdd889:
用uri访问
可以有两种方式
1 直接使用url访问服务
2 ...
cxf+spring -
Javaxiaobao:
貌似是类似远程调用方法,xml数据是怎么传输呢?
cxf+spring
好,现在我们已经在自己的机器上建立了一个持续集成服务器,并初步了解它的配置文件。在本文中,我们就要把自己的项目加到其中。 做为一个入门示例,我们先要陈述一下假设条件,以便我们快速推进我们的部署过程。
--------------------------------------------------------------------------------
一、 准备工作(请确认一下)
1、你的项目代码放在Google Code上面(Google Code用的是SVN ),你的项目名称是yourprojectname,项目的源文件就放在trunk目录下。那么,其svn update的链接如下:http://yourprojectname.googlecode.com/svn/trunk/。CruiseControl只会更新文件,不会修改源代码,所以匿名检出就可以了。
2、你的项目是一个JAVA项目,用ANT进行构建,构建文件名为build.xml,放在项目的根目录上,默认的ant task名为all。确保文件中其中所有路径都是相对于项目根目录的,将其Copy到任何目录下,ant all都可以正确运行。(我们的主要目的是建立环境,使其在今后的开发工作中可以发挥作用,而不是要发现我们构建脚本中错误。)
3、你的CruiseControl工作目录是C:/CruiseControl,方便起见,我们以下将用${CC_HOME}代替。
4、你的logs目录是${CC_HOME}/logs。如果你没有独自改动配置的话,它的位置就如前所述。
5、你的projects目录是${CC_HOME}/projects。如果你没有独自改动配置的话,它的位置就如前所述。
6、你的artifacts目录是${CC_HOME}/artifacts。如果你没有独自改动配置的话,它的位置就如前所述。
二、加入项目
1、手工检出文件:
确保将你的项目代码检出到${CC_HOME}/projects/yourprojectname目录下,即在该目录就是你项目的根目录,可以找到名为build.xml文件。
2、修改配置文件(添加你的项目)
将下面的代码段加入到config.xml文件中,位于<CruiseControl>节点下。
<project name="yourprojectname"> --这里一定要与你的projects目录下的项目名相同
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300"> <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
<!-- 在上面一句,一定要确保构建失败后可以找到这个dir,如果没有,删除这个元素好了-->
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
<!-- 在上面一句,一定要确保你打包出来的文件名是yourprojectname.jar -->
</onsuccess>
</publishers>
</project>
最终的文件如下:
<cruisecontrol>
<project name="connectfour">
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
</onsuccess>
</publishers>
</project>
<project name="yourprojectname">
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
三、看一下结果
(1) CruiseControl会自动更新这个配置文件,加载时间一般是在任何一个项目需要检查是否有更新时。
(2) 你会看到这个项目在Dashboard上首先是灰色的方块,因为这个项目还从来没有在CruiseControl上构建过,没有任何历史信息,我们称该项目为"inactive"。
(3) 过一会儿,你会看到一个环形动态图标,表示它在构建中(执行build.xml脚本)。
(4) 当环形动态图标消失时,你会看到它变成红色(如果构建失败的话)或绿色(如果构建成功的话)。
我新加的项目名是vcdstore,现在我的dashboard上有两个项目了。
小贴士:
(1) 目前CruiseControl还不支持首次自动检出代码,所以你要先把项目代码手工检出到本地。
(2) 如果你的SVN使用https方式更新代码,你一定要在命令行方式检出代码,并选择永久接受证书。
(3) CruiseControl这个分支版本不支持在UI上增加项目。
(4) 如果你在config.xml文件中把你的项目删除,却不删除它的日志的话,你在Dashboard上还是可以看到这个项目,此时它被标记为"Discontinued",表示你可以看到它的历史信息,但CruiseControl不会再构建它了。
下一篇我们将讲述CruiseControl的一些界面信息元素。
--------------------------------------------------------------------------------
一、 准备工作(请确认一下)
1、你的项目代码放在Google Code上面(Google Code用的是SVN ),你的项目名称是yourprojectname,项目的源文件就放在trunk目录下。那么,其svn update的链接如下:http://yourprojectname.googlecode.com/svn/trunk/。CruiseControl只会更新文件,不会修改源代码,所以匿名检出就可以了。
2、你的项目是一个JAVA项目,用ANT进行构建,构建文件名为build.xml,放在项目的根目录上,默认的ant task名为all。确保文件中其中所有路径都是相对于项目根目录的,将其Copy到任何目录下,ant all都可以正确运行。(我们的主要目的是建立环境,使其在今后的开发工作中可以发挥作用,而不是要发现我们构建脚本中错误。)
3、你的CruiseControl工作目录是C:/CruiseControl,方便起见,我们以下将用${CC_HOME}代替。
4、你的logs目录是${CC_HOME}/logs。如果你没有独自改动配置的话,它的位置就如前所述。
5、你的projects目录是${CC_HOME}/projects。如果你没有独自改动配置的话,它的位置就如前所述。
6、你的artifacts目录是${CC_HOME}/artifacts。如果你没有独自改动配置的话,它的位置就如前所述。
二、加入项目
1、手工检出文件:
确保将你的项目代码检出到${CC_HOME}/projects/yourprojectname目录下,即在该目录就是你项目的根目录,可以找到名为build.xml文件。
2、修改配置文件(添加你的项目)
将下面的代码段加入到config.xml文件中,位于<CruiseControl>节点下。
<project name="yourprojectname"> --这里一定要与你的projects目录下的项目名相同
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300"> <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
<!-- 在上面一句,一定要确保构建失败后可以找到这个dir,如果没有,删除这个元素好了-->
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
<!-- 在上面一句,一定要确保你打包出来的文件名是yourprojectname.jar -->
</onsuccess>
</publishers>
</project>
最终的文件如下:
<cruisecontrol>
<project name="connectfour">
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
</onsuccess>
</publishers>
</project>
<project name="yourprojectname">
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
<schedule interval="300">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
三、看一下结果
(1) CruiseControl会自动更新这个配置文件,加载时间一般是在任何一个项目需要检查是否有更新时。
(2) 你会看到这个项目在Dashboard上首先是灰色的方块,因为这个项目还从来没有在CruiseControl上构建过,没有任何历史信息,我们称该项目为"inactive"。
(3) 过一会儿,你会看到一个环形动态图标,表示它在构建中(执行build.xml脚本)。
(4) 当环形动态图标消失时,你会看到它变成红色(如果构建失败的话)或绿色(如果构建成功的话)。
我新加的项目名是vcdstore,现在我的dashboard上有两个项目了。
小贴士:
(1) 目前CruiseControl还不支持首次自动检出代码,所以你要先把项目代码手工检出到本地。
(2) 如果你的SVN使用https方式更新代码,你一定要在命令行方式检出代码,并选择永久接受证书。
(3) CruiseControl这个分支版本不支持在UI上增加项目。
(4) 如果你在config.xml文件中把你的项目删除,却不删除它的日志的话,你在Dashboard上还是可以看到这个项目,此时它被标记为"Discontinued",表示你可以看到它的历史信息,但CruiseControl不会再构建它了。
下一篇我们将讲述CruiseControl的一些界面信息元素。
发表评论
-
润乾报表
2010-10-12 13:58 3073润乾报表润乾报表是一个纯JAVA的企业级报表工具, ... -
oracle连接问题ORA-00604,ORA-12705
2009-11-24 18:09 4615最近也想整整spring和hibernate,于是从网上找个例 ... -
Servlet的跳转方式
2009-06-11 17:31 1251在servlet中,一般跳转都 ... -
java各种时间格式转换
2009-06-10 16:51 65410时间和日期中常用到的几个类:java.util.Date, ... -
java 工程和类等路径汇总
2009-05-31 13:57 1320一 相对路径的获得 ... -
本类加载器的资源文件路径问题
2009-05-31 09:18 1093经常希望通过ClassName.class.getClassL ... -
用CruiseControl监视你的项目 -CruiseControl step by step(4
2009-04-14 10:31 993现在,我们已经为自己的项目建立了持续集成服务器。让我们来看一下 ... -
了解CuiseControl的配置文件 - CruiseControl step by step(2
2009-04-14 10:29 1671上一篇文章中,我们已 ... -
搭建你的持续集成服务器 - CruiseControl step by step(1)
2009-04-14 10:28 1348CruiseControl是CI服务器的 ... -
tomcat三种部署方法
2009-03-12 14:31 969第一种方法:在tomcat中的conf目录中,在server. ... -
cxf webservice
2009-03-11 09:00 1573<web-app version="2.4&q ... -
IntelliJ IDEA常用技巧
2009-03-10 09:11 14811、写代码时用Alt-Insert ... -
list 和 vector 使用区别
2009-01-14 09:03 1994stl提供了三个最基本的容器:vector,list,dequ ... -
Windows下Lucence环境搭建菜鸟入门手册
2008-12-04 09:04 3347Windows下Lucence环境搭建菜鸟入门手册 归类于: ... -
软件开发十大模型
2008-10-31 10:52 1433一、 线性顺序过 ... -
struts+spring+hibernate整合体验报告
2008-10-27 15:08 1187通过3天的学习,发现struts+hibernate+spti ... -
junit4集成设计开发
2008-10-14 10:53 1341JUnit 4 初体验 在开始体验 JUnit 4 之前,我 ... -
持续集成
2008-10-14 10:33 1071今天终于把持续集成中build loop那一块弄出来了,采用a ... -
cruisecontrol实现持续集成
2008-09-18 17:23 846持续集成应用方案见附件,希望能给关系cruisecontrol ...
相关推荐
CruiseControl.NET-1.8.2.0-Setup.exe ccnet 服务端
Curisecontrol持续集成的客户端版,CruiseControl.NET-CCTray-1.4.1-Setup.exe
通过以上步骤,你就成功配置了一个基本的CruiseControl项目。当源代码有变更时,CruiseControl会自动触发构建过程,检查代码、编译项目、运行测试,并将结果展示在Web界面上。这样,开发者可以实时了解到代码更改对...
6. **向CruiseControl中加入新项目**:"CruiseControl step by step(3)"部分可能详细介绍了如何添加新的项目到CruiseControl服务器,包括项目配置文件的修改和项目构建规则的设定。 7. **了解CruiseControl的配置...
CruiseControl.NET-1.4.4-Setup.exe
CruiseControl-2.8.4.exe
CruiseControl通过一个XML配置文件来定义其行为,这个文件通常被称为`cruisecontrol.xml`。在这个文件中,我们可以设置各种属性,包括构建触发器、构建步骤、通知规则等。 **1. 安装与启动CruiseControl** 在开始...
CruiseControl 是一个持续集成工具,用于自动化构建过程并提供实时反馈,帮助开发团队尽早发现问题。它支持多种构建工具如 Ant 和 Maven,并且可以与各种版本控制系统(如 CVS, Subversion 等)集成。 #### 二、...
CruiseControl是一个开源的持续集成工具,能够监控源代码仓库的变动,并自动触发构建和测试过程。CruiseControl版本2.5提供了丰富的特性,支持多种构建工具和测试框架。 - **目录结构**:CruiseControl的工作目录...
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...
CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛应用。CruiseControl.rb的核心理念是...
CruiseControl.NET-CCTray-1.5.6804.1-Setup
主题:持续集成及CruiseControl技术交流 在提升软件质量、降低...如何逐渐提升可回归性、敏捷性,这是一个永恒的话题。 适合群体 具有一定的软件研发经验 熟悉研发工作生命周期中的各个阶段 对持续集成感兴趣的人士
- **工作目录**: 在CruiseControl.net服务器上指定一个目录来存储从版本控制系统中取出的代码。 ![图 3 从 vss 取过来的 BuildTest 项目的目录结构](#) ![图 4 从 svn 取过来的 TestCCNet 项目的目录结构](#) ##...
CruiseControl.NET 是 .NET...CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况。
CruiseControl.NET-1.4-Setup
CruiseControl的核心是一个服务器,它负责监听源代码仓库的变更,并在检测到变更时触发构建过程。这个过程包括编译代码、运行单元测试以及执行其他自动化任务。CruiseControl通过XML配置文件定义其工作流程,并提供...