文章目标
本文主要介绍持续集成的意义及基于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
相关推荐
持续集成篇-Hudson 持续集成服务器的...Hudson 持续集成服务器的安装配置和使用需要在 Centos 6.6 环境中安装 JDK 7、Maven 3.0.5、Tomcat 7.0.59 和 Hudson 3.2.2,配置好环境变量并设置防火墙规则和服务启动脚本。
Git负责版本控制,Maven处理依赖管理,Nexus作为中央仓库优化构建,而Hudson/Jenkins则实现持续集成和自动化部署。这一套工具链不仅提升了开发效率,还保证了代码质量,是现代软件工程实践中的重要组成部分。对于想...
《持续集成篇——Hudson持续集成服务器的安装配置与使用》 在当今的软件开发环境中,持续集成(Continuous Integration,简称CI)已经成为敏捷开发的重要组成部分。它通过频繁地将开发人员的代码更改集成到主分支,...
3. **软件项目持续集成**: Maven与持续集成服务器(如Jenkins、Hudson、GitLab CI/CD等)配合良好,能自动化构建、测试和部署流程。当代码仓库有新的提交时,Maven可以触发构建,确保代码的质量和稳定性。 4. **...
10. **持续集成友好**:Maven 的标准化构建流程使得它非常适用于持续集成服务器,如Jenkins、Hudson或Travis CI。 综上所述,"apache-maven-3.2.3.zip"压缩包包含了一个完整的Maven 3.2.3实例,可以用来搭建Java...
Hudson(现在称为Jenkins)是一款开源的持续集成工具,用于监控持续的集成过程,确保代码质量并快速发现集成错误。它支持多种版本控制系统,如Git、SVN,并可以自动构建、测试和部署项目,极大地提高了开发效率。 *...
8. **持续集成**:Maven与持续集成服务器如Jenkins、Hudson等配合良好,能轻松集成到持续集成流程中。 在解压"apache-maven-3.3.1"后,你会看到以下主要文件和目录: - `bin`: 包含Maven的可执行脚本,如`mvn`命令...
10. **持续集成友好**:Maven的标准化构建过程使其成为持续集成服务器(如Jenkins、Hudson等)的理想选择,能够方便地集成测试和构建流程。 总之,"apache-maven-3.0.5.rar"提供的Maven版本是Java开发中不可或缺的...
根据提供的文件信息,我们可以深入探讨Hudson持续集成的相关知识点,主要围绕着安装、配置以及基本操作等方面进行展开。 ### Hudson持续集成概述 Hudson是一种开源的持续集成工具,旨在自动化软件开发过程中的构建...
持续集成-SVN+Maven+Hudson+Sonar PPT讲解,持续集成的原理
本文档将详细介绍如何搭建一个完整的Hudson持续集成环境,并集成了包括SVN、Maven、Checkstyle、PMD、FindBugs等在内的多种工具。 #### 二、安装前的准备与Hudson安装 **1. 安装前的准备** - **JDK安装:** 在...
根据提供的信息,我们可以详细探讨如何安装配置和使用Hudson持续集成服务器。Hudson是一个开源的持续集成工具,用于自动化软件开发中的构建、测试和部署过程。以下内容将围绕Hudson的安装配置及其与相关工具(如SVN...
【HUDSON持续集成MAVEN项目】是一个关于使用HUDSON(也称为Jenkins)进行Maven项目的持续集成实践的教程。持续集成是软件开发过程中的重要环节,它通过频繁地将开发人员的代码更改合并到主分支来减少集成问题,提高...
### 使用Hudson持续集成知识点详解 #### 一、持续集成概念与价值 - **定义**:持续集成(Continuous Integration, CI)是一种软件开发实践,开发者经常将代码提交到共享存储库,每次提交后都会自动构建并进行自动...
Maven与许多持续集成服务器如Jenkins、Hudson等很好地集成,使得构建和测试过程自动化,提高了软件开发的效率。 通过Apache Maven 3.3.9,开发者可以简化构建过程,专注于代码开发,而将项目管理和构建任务交给...
使用hudson和maven完成持续集成,今天一个朋友过来问我,我就顺便录了一个简短的视屏,对使用做了一个简单的介绍,最大只参上传25M的文件,所以只能分两个包上传,希望能有需要的朋友有帮助
**持续集成**:Maven与各种持续集成工具(如Jenkins、Hudson)良好集成,使得自动化构建和测试变得更加便捷。3.0.3版本在与这些工具的交互中表现出更好的性能和稳定性。 **国际化与文档**:Maven支持生成多种语言...