`
lzzy_alex
  • 浏览: 30075 次
社区版块
存档分类
最新评论

Maven - Hudson持续集成(七)

 
阅读更多

文章目标

本文主要介绍持续集成的意义及基于Hudson工具的集成配置,通过Maven, Subversion, Tomcat实现项目集成开发,提高团队工作效率。基础环境:CentOS6, Jdk1.7, Maven3.3.3, Subversion1.6, Hudson3.3.0.war, Tomcat6

 

阅读目录

1. 持续集成的意义

2. 基础环境安装

3. Subversion安装及配置

4. Hudson安装

5. 自动部署war包到tomcat

 

1. 持续集成的意义

持续集成是指能对项目源码快速,高效地自动化构建,并为相关开发人员提供反馈,包括:

持续编译:如对版本控制系统Subversion每一次变更都能快速地编译。

持续测试:使用测试框架如Junit对测试单元自动,重复地执行。

持续审查:如使用CheckStyle,PMD之类的质量控制工具生成各类报告,如测试覆盖率报告,CheckStyle报告等。

持续反馈:将失败报告持续地反馈给相关人员。

 

从上面的定义可以知道,持续集成能帮助我们快速失败,更小增量的迭代修复问题。下面我们将通过Hudson, Maven, Subversion, Tomcat实现一个持续集成环境的搭建, 使得版本库的每一次变更,都能及时地反馈到测试服务器上,对于失败报告也能及时地反馈给开发人员。 

 

2. 基础环境安装

基础环境包括 jdk7, maven3.3.3, tomcat6,安装都比较简单,这里就不再赘述,环境变量配置可以参考以下内容:

vi /etc/profile
JAVA_HOME=/usr/java/jdk1.7.0_71
MAVEN_HOME=/opt/apache-maven-3.3.3 
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

 

3. Subversion安装及配置

版本库是项目源码管理常用方式,Subversion可以记录每次源码变更,通过与Hudson集成,对变动版本自动进行持续编译,测试,审查,通知的工作。

# 安装
yum install subversion
yum install mod_dav_svn
svnserve --version
 
# 创建仓库
mkdir /opt/svn/repositories
svnadmin create /opt/svn/repositories
 
# 仓库访问权限
vim /opt/svn/repositories/conf/passwd
[users]
foo = bar
 
vim /opt/svn/repositories/conf/authz
[/]
foo = rw
 
vim /opt/svn/repositories/conf/svnserve.conf
[general]
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/opt/svn/repositories
 
# 防火墙
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
service iptables restart
 
# 启动服务
svnserve -d -r /opt/svn/repositories
 
# 开机自启动
vi /etc/rc.d/rc.local  
/usr/bin/svnserve -d -r /opt/svn/repositories

 

完成Subversion安装后,就可以用客户端工具(如tortoisesvn),把前面章节的 account 项目签入svn版本库中,如下图:


 

 

4. Hudson安装

首先到官网下载安装包:http://hudson-ci.org,我下载的版本是hudson3.3.0.war , 重命名后将hudson.war放到tomcat的webapp目录中,然后启动tomcat,访问:http://172.16.240.66:8080/hudson 就可以了。

 

首次启动会提示插件安装,可以先忽略以后再装。在使用Hudson之前,需要配置一些基础变量信息:

 

基础环境变量配置

这里主要配置JDK, Maven, Mail 信息,首先导航到 系统管理 -> 系统设置 , 找到相应项,然后如下图配置即可:



 

这里配置了系统邮箱,当构建失败时,将以这个邮箱发信给相关开发人员。

 

创建Hudson任务

Hudson任务通常是对应着一个版本库的项目,比如对SVN上面的Account项目建立一个Hudson任务,任务名称也叫Account,当SVN的源码变更时,该任务就会按要求执行相应的构建任务了。详细配置信息如下:

 

新建任务 -> 自由风格,然后找到以下相应的配置项:

Discard old builds -> Max # of builds to keep  -> 10   // 最多保留十次构件文件
Source Code Management -> Subversion -> Repository URL 
  -> svn://172.16.240.66/account-parent,点击Update credentials输入SVN用户信息
Build Triggers -> Poll SCM -> */10 * * * *  // 每十分钟轮巡一次
Build -> Invoke Maven2 -> Goals : clean install  // Maven构建目标
E-mail Notification -> Recipients[ dev@mail.com ] -> Send e-mail for every unstable build

 

5. 自动部署war包到Tomcat

Web项目团队开发过程中,内部往往需要一个开发版本视图(项目URL),访问该视图总能得到源码库最新版本功能。要实现这个功能,需要安装一个插件:

 

系统设置 -> 插件管理 -> Deploy to container plugin

插件安装完成后,重新配置Account任务,将可以看到多了一项 Post-build actions -> Deploy war/ear to a container:


 

填入上图的配置信息后保存。从上图的配置名字中可以看出,该插件是通过Tomcat Manager实现war包部署的,所以还需要提供 tomcat-user 账户:

vim /opt/apache-tomcat-6.0.43/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script"/>

 

现在,让我们对Account任务执行 马上构建,在构建任务的电视图标输出中,就可以看到以下信息:


 

说明Hudson已经为我们自动部署了一个war包到tomcat中,这时访问tomcat地址:http://172.16.240.66:8080/account-web-1.0.0-SNAPSHOT/login.jsp  就可以能访问页面了。



 为了验证版本库变更能响应到服务器上,我们对上面的登录页面(login.jsp)进行以下修改,然后再提交到SVN服务器上:



 
提交成功后,Hudson在到达轮巡时间时,发现版本库的更新,就会重新构建,部署。这时就可以看到更新了:



 
Note : 以上生成的项目名称并不友好,大家可以通过设置 account-web 的 pom.xml,在 build 元素下添加: <finalName>account</finalName> 这样,生成的包名就是 account.war 了。

 

参考资料

SVN搭建:http://www.cnblogs.com/zhoulf/archive/2013/02/02/2889949.html

  • 大小: 10 KB
  • 大小: 13.6 KB
  • 大小: 19.6 KB
  • 大小: 3.5 KB
  • 大小: 13.2 KB
  • 大小: 354.9 KB
  • 大小: 201.1 KB
  • 大小: 133.3 KB
分享到:
评论

相关推荐

    持续集成篇-Hudson持续集成服务器的安装配置和使用.docx

    持续集成篇-Hudson 持续集成服务器的...Hudson 持续集成服务器的安装配置和使用需要在 Centos 6.6 环境中安装 JDK 7、Maven 3.0.5、Tomcat 7.0.59 和 Hudson 3.2.2,配置好环境变量并设置防火墙规则和服务启动脚本。

    git-maven-nexus-hudson使用手册

    Git负责版本控制,Maven处理依赖管理,Nexus作为中央仓库优化构建,而Hudson/Jenkins则实现持续集成和自动化部署。这一套工具链不仅提升了开发效率,还保证了代码质量,是现代软件工程实践中的重要组成部分。对于想...

    持续集成篇--Hudson持续集成服务器的安装配置和使用.pdf

    《持续集成篇——Hudson持续集成服务器的安装配置与使用》 在当今的软件开发环境中,持续集成(Continuous Integration,简称CI)已经成为敏捷开发的重要组成部分。它通过频繁地将开发人员的代码更改集成到主分支,...

    maven-3.8.4 加各版本下载地址

    3. **软件项目持续集成**: Maven与持续集成服务器(如Jenkins、Hudson、GitLab CI/CD等)配合良好,能自动化构建、测试和部署流程。当代码仓库有新的提交时,Maven可以触发构建,确保代码的质量和稳定性。 4. **...

    apache-maven-3.2.3.zip

    10. **持续集成友好**:Maven 的标准化构建流程使得它非常适用于持续集成服务器,如Jenkins、Hudson或Travis CI。 综上所述,"apache-maven-3.2.3.zip"压缩包包含了一个完整的Maven 3.2.3实例,可以用来搭建Java...

    m2eclipse-hudson插件

    Hudson(现在称为Jenkins)是一款开源的持续集成工具,用于监控持续的集成过程,确保代码质量并快速发现集成错误。它支持多种版本控制系统,如Git、SVN,并可以自动构建、测试和部署项目,极大地提高了开发效率。 *...

    apache-maven-3.3.1.zip

    8. **持续集成**:Maven与持续集成服务器如Jenkins、Hudson等配合良好,能轻松集成到持续集成流程中。 在解压"apache-maven-3.3.1"后,你会看到以下主要文件和目录: - `bin`: 包含Maven的可执行脚本,如`mvn`命令...

    apache-maven-3.0.5.rar

    10. **持续集成友好**:Maven的标准化构建过程使其成为持续集成服务器(如Jenkins、Hudson等)的理想选择,能够方便地集成测试和构建流程。 总之,"apache-maven-3.0.5.rar"提供的Maven版本是Java开发中不可或缺的...

    Hudson 持续集成 continuous-integration-with-hudson 英文版

    根据提供的文件信息,我们可以深入探讨Hudson持续集成的相关知识点,主要围绕着安装、配置以及基本操作等方面进行展开。 ### Hudson持续集成概述 Hudson是一种开源的持续集成工具,旨在自动化软件开发过程中的构建...

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

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

    Hudson持续集成环境搭建

    本文档将详细介绍如何搭建一个完整的Hudson持续集成环境,并集成了包括SVN、Maven、Checkstyle、PMD、FindBugs等在内的多种工具。 #### 二、安装前的准备与Hudson安装 **1. 安装前的准备** - **JDK安装:** 在...

    Hudson持续集成服务器的安装配置和使用

    根据提供的信息,我们可以详细探讨如何安装配置和使用Hudson持续集成服务器。Hudson是一个开源的持续集成工具,用于自动化软件开发中的构建、测试和部署过程。以下内容将围绕Hudson的安装配置及其与相关工具(如SVN...

    HUDSON持续集成MAVEN项目

    【HUDSON持续集成MAVEN项目】是一个关于使用HUDSON(也称为Jenkins)进行Maven项目的持续集成实践的教程。持续集成是软件开发过程中的重要环节,它通过频繁地将开发人员的代码更改合并到主分支来减少集成问题,提高...

    使用Hudson持续集成 ppt

    ### 使用Hudson持续集成知识点详解 #### 一、持续集成概念与价值 - **定义**:持续集成(Continuous Integration, CI)是一种软件开发实践,开发者经常将代码提交到共享存储库,每次提交后都会自动构建并进行自动...

    apache-maven-3.3.9

    Maven与许多持续集成服务器如Jenkins、Hudson等很好地集成,使得构建和测试过程自动化,提高了软件开发的效率。 通过Apache Maven 3.3.9,开发者可以简化构建过程,专注于代码开发,而将项目管理和构建任务交给...

    hudson和maven完成持续集成

    使用hudson和maven完成持续集成,今天一个朋友过来问我,我就顺便录了一个简短的视屏,对使用做了一个简单的介绍,最大只参上传25M的文件,所以只能分两个包上传,希望能有需要的朋友有帮助

    maven-3.0.3.zip

    **持续集成**:Maven与各种持续集成工具(如Jenkins、Hudson)良好集成,使得自动化构建和测试变得更加便捷。3.0.3版本在与这些工具的交互中表现出更好的性能和稳定性。 **国际化与文档**:Maven支持生成多种语言...

Global site tag (gtag.js) - Google Analytics