使用jenkins实现持续集成

Posted scarlett_hy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jenkins实现持续集成相关的知识,希望对你有一定的参考价值。

一、jenkins 介绍

  •   它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预,有利于减少重复过程以节省时间、费用和工作量;
  • 它需要有专门的集成服务器来执行集成构建;
  • 它需要有代码托管工具支持,比如SVN;
  • Jenkins的主要目标是监控软件开发流程,快速显示问题;
  • jenkins持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,所以它有利于减少重复过程以节省时间、费用和工作量。

  

二、下载安装启动

本文介绍的是在CentOS系统下,用rpm包安装方式进行启动

2.1 安装准备

软件

版本

说明

JDK

1.7.0_76

解压安装,注意设置好环境变量

ant

1.9.9

JDK1.7.x只能安装1.9.x系列ant

Jenkins

2.33

JDK1.7.x只能安装Jenkins2.3.x系列Jenkins

2.2 安装ant

ant是基于java的一款构建工具,通过配置build.xml,让项目可以进行编译,部署,打包。

因为我们要实现自动构建,所以首先要安装ant。

  • http://ant.apache.org 上下载tar.gzant

  • wget http://www-eu.apache.org/dist//ant/binaries/apache-ant-1.9.9-bin.tar.gz

  • 解压tar包

  • tar -zxvf apache-ant-1.9.9-bin.tar.gz

  • 移动到/usr/share

  • cp -r apache-ant-1.9.9 /usr/share

  • 切换到/usr/share目录下,重命名

  • cd /usr/share

  • mv apache-ant-1.9.9 ant

  • 配置环境变量

  • vi /etc/profile

#set Ant enviroment

export ANT_HOME=/usr/share/ant

export PATH=PATH:PATH:ANT_HOME/bin

  • 立刻将配置生效

  • source /etc/proifle

  • 测试ant是否生效

  • ant -version

出现如下提示便表示安装成功。

ant的使用查看这篇文章:ant在持续集成的应用

2.3 卸载及安装jenkins

2.3.1 卸载原来安装的rpm包

  首先查看是否已经安装过jenkins
rpm -qa|grep jenkins
   我这里用的是jdk1.7,所以下载版本http://pkg.jenkins-ci.org/redhat/jenkins-2.33-1.1.noarch.rpm(jenkins下载地址:http://pkg.jenkins-ci.org/redhat/),
   原先现在2.5版本以上,版本太高,启动报“java.lang.UnsupportedClassVersionError”错,所以要卸载之前安装的jenkins-2.54-1.1.noarch,使用如下命令
# 卸载原先高版本的jenkins
rpm -e nodeps jenkins-2.54-1.1.noarch

2.3.2 安装jenkins

# 下载jenkins-2.33-1.1.noarch.rpm
wget http://pkg.jenkins-ci.org/redhat/jenkins-2.33-1.1.noarch.rpm
#安装jenkins-2.33-1.1.noarch.rpm
sudo rpm -ih jenkins-2.33-1.1.noarch.rpm

出现如下图

表示安装成功,安装成功会自动生成下面文件: 

/usr/lib/jenkins/jenkins.war            #WAR包 
/etc/sysconfig/jenkins                  #配置文件
/var/lib/jenkins/                       #默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log            #Jenkins日志文件

2.4 启动

启动用如下命令:

sudo service jenkins start

 报了如下错误:

会报这个错误,这是由于没有配置java环境,有两种方法可以解决:

2.4.1 安装jdk环境

  先检查一下java虚拟机有没有安装,如果没有就安装

java --version

2.4.2 在jenkins配置文件中配置

  需要“vi /etc/init.d/jenkins”,把jdk路径加上,如下:

复制代码
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/home/lutong/soft/jdk1.7.0_76/bin/java
"
for candidate in $candidates
do
  [ -x "$JENKINS_JAVA_CMD" ] && break
  JENKINS_JAVA_CMD="$candidate"
done

JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
PARAMS="--logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon"
复制代码

上述配置文件中红色加粗字体的内容是我配置自己的jdk路径。由于我的系统中的java是自己解压安装的,所以我采用了第二种方式

再次启动jenkins:

 

三、默认配置修改及初始化

3.1 修改配置文件

上面我们有提到配置文件是/etc/sysconfig/jenkins,修改如下两项配置(根据实际需要设置)

#修改为18080,默认是8080
JENKINS_PORT="18080"
#内存设置,我这里设置成如下配置
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"

3.2 初始化

  • 在浏览器中输入172.16.7.109:8080/jenkins(默认是使用8080端口)

打开jenkins的后台控制页面

初始化成功后会自动生成一个管理员密码放到指定位置,根据页面提示复制密码粘贴到输入框就可以登录了


3.3 初始化安装插件

  • 登录成功后回让你选择插件的安装,可以选择建议的安装也可以自己进行选择,不清楚的话可以使用建议的安装

    由于建议安装的插件比较多,安装的过程有点慢,多等待一会

  • 由于建议安装的插件比较多,安装的过程有点慢,多等待一会

  •  

  • 安装的过程也可能因为网络等一些原因安装会失败,现在可以无视它,点击Continue,后面再进行手动的安装


  • 安装完成
  • 安装完成后最好新创建一个管理员账户代替之前的临时自动生成的密码账户
  • 创建新的管理员账户
  • 初始化完成,进入后台管理界面

     


    初始化完成


    后台管理界面

    3.4 初始化配置

    3.4.1 修改工作空间

    从主页面直接到“系统管理>系统配置”,点击右边“高级”按钮

    在工作空间目录”直接修改默认工作空间目录为自定义的/home/jenkins/workspace/${ITEM_FULLNAME},如下图:

     

    3.4.2 全局配置ant

    从主页面直接到“系统管理>Global Tool Configuration”,点击右边“Ant安装”按钮,

    在name中填入名字,可以自己取,这里我填写成ant(到时Invoke Ant时,需要选择ant),ANT_HOME填入Ant的环境变量

     

     3.4.3 全局配置JDK

    从主页面直接到“系统管理>Global Tool Configuration”,点击右边“JDK安装”按钮,

     

     

     在name中填入名字,可以自己取,这里我填写成ant(到时Invoke Ant时,需要选择ant),ANT_HOME填入Ant的环境变量

    3.4.4 配置Credentials

    这里主要是添加信任证书,因为我的工程的源码是放在SVN上,所以在这里我们就是要添加SVN的验证,即SVN的用户名和密码。

    从主页面左边菜单点击到“Credentials”,进入到 Credentials列表,如图所示:

     

    点击Name列中即可对Credentials中用户进行修改、新增、删除操作,如下图所示:

     

    修改完后,点击下面“Save”保存按钮即可

     

四、建立 Jenkins 自动化持续集成项目

4.1 安装插件

4.1.1 常用插件

  一般情况下,常使用到如下这些插件:

  • FindBugs Plug-in: 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对 比以发现可能的问题。
  • Checkstyle Plug-in:是一个静态分析工具,检查Java程序代码。
  • Deploy to container Plugin:用于构建项目后,自动发布war包重新部署的插件
  • SSH Plugin:这个插件使用 SSH 协议执行远程 shell 命令。
  • Multijob Plugin:这个插件是一个将多个项目连接在一起的插件。

4.1.2 安装步骤

  下面以安装Checkstyle插件为例进行说明:

在左上角“系统管理”中往下拉,找到“管理插件”点击进去就可以查看和管理所有的插件,点击“可选插件”显示所有jenkins支持的插件,在右上角的“过滤”输入框中,输入需要安装的插件名就可以筛选查找到想要的插件

  然后切换到“可选插件”,在右上角“过滤”框中输入checkstyle,查询结果如下

然后,点击“直接安装”按钮,其他插件也是这样的安装方式!

每一个你不满意的当下,都有一个你不曾努力的过去

以上是关于使用jenkins实现持续集成的主要内容,如果未能解决你的问题,请参考以下文章

使用jenkins实现持续集成

美女教你如何使用jenkins实现持续集成?

[转]使用jenkins实现持续集成

jenkins持续集成工作原理

使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建

Jenkins+Gitlab实现持续集成