`
AdyZhang
  • 浏览: 14157 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hudson+Maven+Svn搭建持续集成环境

阅读更多

 

一、所用开发工具

1.    Hudson: Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI服务器吸取了许多经验 教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添加特性,例如添加tomcat插件后,可以方将build好的war包方便的部署到Tomcat里。下载地址:http://hudson-ci.org/

2.    Maven2:Maven 是一个顶级的 Apache Software Foundation 开源项目,创建它最初是为了管理 Jakarta Turbine 项目复杂的构建过程。从那以后,不论是开源开发项目还是私有开发项目都选择 Maven 作为项目构建系统。下载地址:http://maven.apache.org/download.html

3.    Subversionsvn):版本控制软件,和它功能相似的工具有cvs,perforce等。下载地址:http://www.subversion.org.cn/

4.    Hudson的自动部署插件,下载地址::https://hudson.dev.java.net/files/documents/2402/106347/deploy.hpi

 

二、工具的安装及设置

1.     Maven2的安装:把maven-2.0.4-bin.zip解压到D:\maven-2.0.4(或者你自己想解压的位置,我是如此配置的)下面就是配置环境变量了,这和1.0的版本是一样的。(1MAVEN_HOME:D:\maven-2.0.4 2)在Path 中加入%MAVEN_HOME%\bin

这样配置就OK了。测试是否安装成功,可以在命令行下输入mvn  -v,出现如下界面,说明安装成功

 


 

 

 

 

2.    Hudson的安装:Hudson的安装有两种方式(1)可以将Hudson部署到Tomcat下面运行,将下载的hudson.war直接放到Tomcatwebapp下,启动tomcatok

2)可以使用命令启动hudson。步骤:首先下载hudson.war,然后可以在一个盘符下建立一个文件夹,如D:\hudson(自己可以随意建立),然后将这个路径设置环境变量(别说你不会设置环境变量哦),Hudson_Home=D:\hudson,最后使用命令java -jar hudson.war启动hudson

3.    Svn的安装:svn的安装比较简单,下载好安装文件后,一路next即可。

三、Maven2+Hudson+Svn的集成

    这里比较重要了,这三样的结合主要就是在这里来进行配置的,而Maven2Svn的配置都是依赖于Hudson的,所以重点讲讲Hudson的配置

1.       Hudson的配置

 

用上述的Hudson的安装方法安装好Hudson后,就可以通过浏览器http://localhost:8080/hudson来打开Hudson的页面了,如下(如果你已经build过工程的话,会在这里显示出来哪些成功了,哪些失败了)

 

 

 

 


2.       Hudson的全局配置

接下来要对Hudson进行全局设置了,点击左边列表菜单Manage Hudson,然后点击Configure System。可以对hudson进行系统配置,包括全局路径和变量设置等。如下图

 

 

1:System Message 当然了这是表面的东西啦,你可以写点随意的东西,比如HelloHudson啊,然后弄个Logo图片什么的,它也支持HTML语言,可以把这个欢迎界面弄的相当漂亮,不详述。

2:Quiet period 这个值是表示你可以让你的构建有等待时间,以防止在提交代码的过程中去开始构建。这里是全局的变量,我习惯在每个项目里面去设定,因为我使用hudson搭建的项目有SVN的还有VSS的,这个等待时间的值肯定会不一样。(如果你想在这里设置可以查看右边的“帮助”)

3:Enable security 这里是hudson权限的相应设置,选择该项后,如下图:


 

这里可以保留默认设置,如果你想对每个用户进行相应的权限操作,选择Authorization项下的Project-based Matrix Authorization Strategy这个选项就可以进行相应的设置了,如下图所示:


这里可以保留默认设置,如果你想对每个用户进行相应的权限操作,选择Authorization项下的Project-based Matrix Authorization Strategy这个选项就可以进行相应的设置了,如下图所示:

 

 

 

 

 

4Global properties这块设置默认即可

5Maven这里的设置,就是取个名字,然后路径中指定maven2的解压路径。如下图所示

 



  

 

 

 

 

 

 

 

 

 

 

 

 

在这里设置时,我一般去掉Install automatically,而是直接指定MAVEN_HOME,我的maven是装在C:\Program Files\apache-maven-2.2.1-bin\apache-maven-2.2.1(依个人设置)这里的,直接填入即可。

6JDK设置

              Jdk的设置是必须的,如果你在这里没有设置jdk的路径的话,在build工程的时候有可能会报这个错误,如下图所示,

 

 

所以正确的设置也是去掉Install automatically选项,直接填写名称和   JAVA_HOME

我的JAVA_HOME是安装在C:\Java\jdk1.6.0_02这里的,所以直接填入即可。填写好的JDK设置如下图:



 

7shell,Ant,Maven,CVS等等,这些可以不用设定。这里就不做介绍啦,如果想了解的更深,右边的“help”(右边的蓝色小问号)会有很大的帮助。

8:E-mail Notification 这个主要是邮件提醒,可以不用设置,要感兴趣的话,可以这样设置,具体参考右边的蓝色小问号。

SMTP server-->mail服务器地址(127.0.0.1

Default user e-mail suffix-->邮件的后缀名(@123.com

System Admin E-mail Address-->管理员用户的邮件帐号123@123.com

Hudson URL-->访问hudsonURLhttp://127.0.0.1:8080

至此,Hudson的全局配置就差不多了…...

3.       开始创建job

点击左侧列表菜单的New Job,出现如下界面

 

填写Job name,然后选中Build a maven2 project,依个人项目设定,这里讲Maven2的工程,点击OK按钮。进入job的设置页面(这里是重点,在这里我们可以看到Hudson的伟大,如何将Maven2的工程以及Svn集成起来)如下图所示

 



 

 

1: Project Name 在你建立项目的时候已经取过名字了,TestJob.如果你哪天想改名字,就在这里改就可以了.

2): Description 这里主要是写对TestJob这个项目的描述,可以写项目的参与者,项目起止日期等等,可以说这个地方是美化界面+项目描述+提示信息等等,我对于界面美化没有太多的要求,这个就留给大家去研究啦.

3: Discard Old Builds 建议开启这个选项(hudson有一个选项,可以从SVNcheck out项目,但这个项目的位置好像只能是%hudson_home%/jobs/projectname/workspace下面,本人认为这是一个不合理的方式,因为很正常的大家都会在自己的目录下建立项目后,然后再用hudson去构建环境。

 

Advanced Project Options: 这里是表示你可以对你的项目构建进行一定的设置,它下面包括两个小的选项,

1.Quiet period: 时间可以根据项目的需要来设定。哦,差点忘了,这里的这个时间是说明从构建开始到项目真正开始构建之间的时间差,比如,我将此时间设为300S,说明TestJob在要开始构建之前会有5分钟的时间缓冲,这个是非常人性化的,因为如果有大量的代码需要提交,会需要很长时间,如果没有等待时间的话很容易出现少代码的情况导致整个构建过程的失败。

2.Use custom workspace:这个地方你可以将可以对外公布的东西放在一个特定的目录下,然后把这里的值设成该目录,如:D:\hudson\jobs\TestJob\builds这样的话,这个目录下的东西是就公共的了。

 

Source Code Management:呵呵,这里就是要结合版本控制工具的地方了,这里就看你选用的是那种工具了,我用的是svn,所以设置如下

Repository URL里填入你的仓库地址,svn有两种地址,一种是http://.....这样的,一种是svn://......的,我这里是用的第二种方式,所以填入svn://192.168.0.245:56581/mydemo

(注意,这里是工程的根目录,也就是pom.xml所在的目录,你可不要填写成svn://192.168.0.245:56581/demo/src等的目录了。要注意哦!!!)

Use update: 这里选项勾上后,每次检测到库上有更新,就会使用svn update命令;如果没有勾上的话,那每次使用的是svn checkout命令,理由是update要比checkout命令省相当多的时间。

 

Build Triggers:可以理解为你想以什么样的方式去触发你的构建,以其它构建成功后为基础,还是周期性的构建,还是根据poll SCM(变更触发)来触发构建。

我习惯选择 Build periodically,并在Schedule中输入 0 12,20 * * *

注: Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分    年。*代表所有,具体参考右面的蓝色小问号

0 12,20 * * * 表示在任何年任何月的任何天的1220点的0 进行构建

 

 

BuildBuild Settings没有什么特殊的设置,可以不用设置

Post-build Actions:这里也可以说是做一些发布啊,善后啊之类的,可以看到有mail, artifacts, publish之类的。

 

☆Hudson的自动部署:

一般我们build成功一个项目后,Hudson会在%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target下发布一个项目的war包。(注释:project_name是你的项目名称,Hudson_home一般在C:\Documents and Settings\username\.hudson下。其中username是你当前的系统用户,有来宾账户或者administrator等。呵呵,注释是不是很无聊啊,为普及用,见谅。)但是我们想build成功后,就要看到我们项目进展的怎么样了,就想通过Tomcat来加载这个war包直接看效果,这时,我们不得不手动的把这个war包拷贝到Tomcatwebapp下,然后启动Tomcat。很麻烦吧,这里介绍的就是这种简单的自动部署方法,可以通过Hudson的一个插件,呵呵,现在前面提到的那个插件就起大作用了。点击左侧列表菜单Manage Hudson,然后选择第三项Manage Plugins,这个选项的功能是管理Hudson插件的,(或者直接输入:http://localhost:8080/hudson/pluginManager/)在这里说明了Hudson的扩展性有多么的强大,在插件管理中心点击Advanced,upload plugin 中上传刚才下载的插件,上传完毕后需要重启hudson才能完成安装(即重启tomcat),重启后点击New Job后,然后建立一个新的Job时(已有的项目,直接点击进入项目,然后点左侧的功能菜单configure),在配置页面的Post-build Actions项下面会多出一项功能:Deploy war/ear to a container,在这里WAR/EAR file:就是填写hudson所打好的war包路径,之前说过,hudson打好的war包是放在这里的,所以这里就写%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target/你的war文件的名称.warContainer选择你的Tomcat的版本。Manager user name:填写Tomcat的用户名,默认是admin, Manager password:填写Tomcat的密码,默认是空。Tomcat URL:填写http://localhost:8080/ok了,至此保存就可以了,这样,当你再build此工程的时候,war文件会自动部署到你的tomcatwebapp目录下。设置如下图所示

 



 

 

 

 

 

Ok,最基本的快速的配置到这里就完了

 

分享到:
评论

相关推荐

    Hudson+Maven+SVN 搭建持续集成环境

    【Hudson 持续集成环境的搭建】 Hudson 是一款开源的持续集成工具,它能够自动化软件构建、测试和部署的过程,极大地提高了开发效率和软件质量。与 Maven 和 SVN 结合,我们可以构建一个强大的持续集成环境。Maven ...

    Hudson+Maven+SVN_快速搭建持续集成环境

    Hudson+Maven+SVN_快速搭建持续集成环境.docx

    Hudson+Maven+SVN 快速搭建持续集成环境

    结合Hudson、Maven和SVN,可以构建出一套高效、自动化的持续集成环境。Hudson负责监听代码变更并启动构建,Maven处理构建过程,而SVN则作为代码版本控制中心。这种组合可以确保团队的代码质量和项目进度,降低集成...

    Hudson+Maven+SVN 自动部署

    Hudson、Maven和SVN(Subversion)是三个重要的工具,它们共同协作可以实现无缝的持续集成和自动部署。 **Hudson** 是一个开源的持续集成服务器,它的主要任务是监控和自动化软件项目的构建过程。通过定期检查代码...

    Hudson+Sonar+Maven+SVN详细集成介绍

    Hudson+Sonar+Maven+SVN详细集成介绍

    Jenkins+Maven+SVN+Tomcat持续集成实战

    《Jenkins+Maven+SVN+Tomcat持续集成实战》 在现代软件开发中,持续集成(Continuous Integration,简称CI)已经成为提升效率、保障质量的重要手段。本文将详细讲解如何利用Jenkins、Maven、SVN和Tomcat等工具进行...

    Hudson+Maven+SVN

    总结,通过Hudson、Maven和SVN的结合,开发者可以构建出一个高效的持续集成环境,提升开发效率,减少手动错误,并确保代码质量。这种集成方式不仅适用于Java项目,也适用于其他支持Maven构建的项目,是现代敏捷开发...

    hudson+maven+svn自动化部署

    自动化部署的核心在于构建一个稳定且高效的持续集成/持续部署(CI/CD)环境。为了实现这一目标,通常需要以下几项关键技术组件: 1. **JDK (Java Development Kit)**: - **作用**: JDK 是 Java 开发的基础,提供了...

    hudson+maven+svn的简单自动化部署,目前本人已经使用在现网了

    本文将详细介绍如何利用Hudson、Maven和SVN实现简单的自动化部署,这种方法已经在实际生产环境中得到了应用。 1. **Maven**: Maven是一个跨平台的项目管理工具,由Apache软件基金会维护。它主要用于Java项目的...

    Hudson+Maven+Svn配置[归纳].pdf

    【Hudson+Maven+Svn配置】的整合是软件开发中的一个重要环节,它涉及到了持续集成、自动化构建和版本控制等多个关键领域。以下是对这些工具的详细解释和配置步骤: 1. **Hudson**:Hudson是一个开源的持续集成...

    持续集成-SVN+Maven+Hudson+Sonar PPT讲解

    持续集成-SVN+Maven+Hudson+Sonar PPT讲解,持续集成的原理

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建一

    本篇将详细讲解如何结合Nexus、SVN、Jenkins(Hudson)、Maven以及禅道这五款工具,搭建一个适用于敏捷开发流程和持续集成理念的环境。这个环境能够极大地提升开发效率,简化项目管理流程。 **Nexus**: Nexus是一款...

    nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二

    在本篇中,我们将深入探讨如何构建一个完整的IT开发流程,包括使用Nexus作为Maven仓库、Subversion(SVN)作为版本控制系统、Jenkins(Hudson)进行持续集成、Maven作为构建工具,以及禅道(ZenDo)作为项目管理软件...

    Linux 安装hudson+maven+nexus

    在Linux环境中,构建一个自动化部署系统常常涉及到一系列的工具集成,如Hudson、Maven和Nexus。这个过程主要包括三个主要部分:安装Hudson作为持续集成服务器,配置Maven为项目构建工具,以及安装Nexus作为私有仓库...

    hudson svn maven 自动构建

    【标题】"Hudson SVN Maven 自动构建"指的是在持续集成环境中使用Hudson(现在称为Jenkins)作为工具,结合Subversion(SVN)作为版本控制系统,Maven作为项目管理和构建工具,实现代码的自动构建过程。这个流程的...

    hudson svn maven deploy BOM

    【标题】"hudson svn maven deploy BOM" 涉及到的IT知识点主要集中在持续集成工具Hudson、版本控制系统Subversion(SVN)、构建工具Maven以及部署插件和字符编码处理方面。以下是对这些关键概念的详细解释: 1. **...

Global site tag (gtag.js) - Google Analytics