Jenkins+Maven+SVN+Sonar持续集成(一)Centos6.5上Jenkins安装

一.持续集成概述

1.什么是持续集成

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 

持续集成正是针对这一类问题的一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

2.持续集成的核心价值

持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量; 
持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能; 
持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心

3.持续集成系统的组成

一个完整的构建系统必须包括: 
1)一个自动构建过程,包括自动编译、分发、部署和测试等。 本文采用JDK1.8编译Java源程序,Maven进行项目构建,Tomcat作为应用容器,并集成Sonar进行代码质量管理。
2)一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。 本文采用SVN进行代码版本管控。

3)一个持续集成服务器。本文中介绍的 Jenkins就是一个配置简单和使用方便的持续集成服务器。

二.Jenkins介绍

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:

1.持续的软件版本发布/测试项目。

2.监控外部调用执行的工作。

Jenkins对于maven工程完整的编译和发布流程如下: 

1.Jenkins从SVN上拉取代码到指定的编译机器(Maven)上;

2.在编译机器(Maven)上触发编译命令或脚本;

3.编译得到的结果文件(如:War包);

4.把结果文件传到指定的服务器(Tomcat)上,重启Web应用

5.调用sonar进行代码度量

三.前提条件

1. 安装好JDK并配置好环境变量,版本要求1.7及以上,建议采用的是jdk1.8,因最新版的Sonar要求

四.安装Jenkins

1.下载软件本地安装:

1)下载好jenkins的安装包(http://pkg.jenkins-ci.org/redhat/),本文用的是:jenkins-2.9-1.1.noarch.rpm

2)运行命令:rpm -ivh jenkins-2.9-1.1.noarch.rpm

2.在线安装,建议采用该方法(简单)

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

五.配置Jenkins

1.将JDK路径配置到jenkins下,命令:

vi /etc/init.d/jenkins
编辑界面修改candidates,加入自己的jdk路径:

# Search usable Java. We do this because various reports indicated
# that /usr/bin/java may not always point to Java >= 1.6
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_101/bin/java
/usr/java/jdk1.8.0_101/jre/bin/java

2.如果和本地的端口冲突,则需要修改jenkins的端口号:

vi /etc/sysconfig/jenkins

修改/etc/sysconfig/jenkins中的参数:

JENKINS_PORT="8080"  
JENKINS_AJP_PORT="8009"

修改完成后需要执行命令,使之生效:

source /etc/sysconfig/jenkens

五.启停命令

service jenkins start
service jenkins stop

启动完成后即可登录  http://IP:8080/ 访问Jenkins

我们将在下一个章节讲述Jenkins的配置

六.常见问题

1)发现还是不能正常启动,可能会提示如下失败信息,错误如下:

Starting Jenkins Jenkins requires Java7 or later, but you are running 1.4.2 from /usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre

原因:我服务器上安装了:jdk1.4、jdk1.7,Jenkins找到了错误jdk路径1.4.2

解决办法:

vi /etc/sysconfig/jenkins
直接修改JENKINS_JAVA_CMD参数

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Java executable to run Jenkins
# When left empty, we'll try to find the suitable Java.
#
JENKINS_JAVA_CMD="/usr/java/jdk1.8.0_101/bin/java"
 
  修改完成后需要执行命令,使之生效: 
  

source /etc/sysconfig/jenkens



你可能感兴趣的:(自动化持续集成平台)