jenkins实现持续集成

下载安装

软件版本需求:
    JDK要求1.7以上,ant版本1.9系列都可以,jenkins版本2.33以上。jdk的安装不再说了,下面只说一下ant和jenkins的安装和配置:
    ant是基于java的一款构建工具,通过配置build.xml,让项目可以进行编译,部署,打包。因为我们要实现自动构建,所以首先要安装ant。

一.ant的下载和配置

wget http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.5-bin.tar.gz

然后进行解压到/usr/share目录下,进行重命名

tar -zxvf apache-ant-1.10.5-bin.tar.gz -C /usr/share/
mv apache-ant-1.10.5 ant

配置环境变量:

vim ~/.bashrc

加入ant的安装路径:

export ANT_HOME=/usr/share/ant
export PATH=${ANT_HOME}/bin:$PATH

使配置文件生效:

source ~/.bashrc

输入ant -version 检查是否安装成功:
在这里插入图片描述

二.Jenkins的安装和配置

1.首先查看之前是否以前安装过:

rpm -qa|grep jenkins

有的话通过下面命令进行删除:

rpm -e nodeps  xxxxxx

下载安装包:

wget http://pkg.jenkins-ci.org/redhat/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.环境配置:

vim /etc/init.d/jenkins

在打开的文件中加上java的安装路径,一定要注意是java中jre里面的java的路径:

/usr/lib/java/jdk/jre/bin/java

因为默认的端口是8080,因此在这里做一下修改:

vim /etc/sysconfig/jenkins

修改为9090:

JENKINS_PORT="9090"

另外对内存进行修改:

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"

修改完成之后进行重启:

service jenkins restart

在浏览器中输入地址http://47.100.63.28:9090/jenkins会出现以下界面:
在这里插入图片描述
3.初始化成功后会自动生成一个管理员密码放到指定位置,根据页面提示复制密码粘贴到输入框就可以登录了
在这里插入图片描述
通过cat命令道指定目录下查看密码即可,然后输入进去.然后点击继续。
    登录成功后回让你选择插件的安装,可以选择建议的安装也可以自己进行选择,不清楚的话可以使用建议的安装,由于建议安装的插件比较多,安装的过程有点慢,多等待一下在这里插入图片描述

安装完成之后创建一个新的管理员账号代替之前临时自动生成的密码账户:
在这里插入图片描述
点击Save and Finish完成创建。进入到初始化界面:
在这里插入图片描述

4.初始化配置:
   4.1.修改工作空间:
从主页面直接到"系统管理>系统配置,点击右边的高级按钮"
在这里插入图片描述
在工作空间目录”直接修改默认工作空间目录为自定义的/root/jenkins/workspace/${ITEM_FULLNAME},如下图:
在这里插入图片描述
   4.2 全局配置JDK和Ant:

从主页面直接到“系统管理>Global Tool Configuration”,点击右边“JDK或者ant安装”按钮,
在这里插入图片描述

如果已经下载过了不会显示安装按钮。

三.建立Jenkins自动化持续集成项目

1.安装插件:
常用插件有以下几个:

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

     以Checkstyle为例进行下载,在左上角“系统管理”中往下拉,找到“管理插件”点击进去就可以查看和管理所有的插件,点击“可选插件”显示所有jenkins支持的插件,在右上角的“过滤”输入框中,输入需要安装的插件名就可以筛选查找到想要的插件
在这里插入图片描述
2.新建项目:
下面以建立一个自由风格软件项目为例进行说明

点击左侧边栏的“新建”按钮,新建一个任务。
填写项目的名称,并选择一种构建的方式,此时我们选择第一个,构建一个自由风格的软件项目,然后点击“OK”按钮创建任务,并进行详细的配置:
在这里插入图片描述
点击ok之后会进入到下面配置页面:
在这里插入图片描述
接下来,我从General、源码管理、构建触发器、构建环境、构建、构建后操作这几个部分来进行详细配置说明:
2.1 General配置
这部分主要是设置下名称、工作空间等。点击高级按钮开始进行配置,只需设置工作空间即可:

在这里插入图片描述

若是只有一个项目,也可以直接到“系统管理>系统配置>工作空间目录”直接修改默认工作空间目录,点击高级出现如下图:
在这里插入图片描述

2.2 构建触发器
指定的项目完成构建后,触发此项目的构建。

Poll SCM: 当选择此选项,您可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下源代码 仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写H 2 * * *将使Jenkins每 隔2分 钟就检查一次源码仓库的变化。

Build periodically:此选项仅仅通知Jenkins按指定的频率对项目进行构建,而不管SCM是否有变化。 如果想在这个Job中运行一些测试用例的话,它就很有帮助。
在这里插入图片描述
2.3 构建:
这部分主要是配置构建的相关内容,用于定时触发构建或者手动执行构建的时候,对代码检验、编译时进行的操作。构建概念到处可查到,形象来说,构建就是要把代码从某个地方拷贝过来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个。

因为我的项目是用ant脚本实现的编译和打包,所以我选择的是Invoke Ant,Ant Version选择我Ant配置的那个名字(这里可以参见上面),注意不要选择default喔,那个选择了没有用。

增加构建步骤:Invoke Ant
Targets:(什么也没写,默认执行根目录下的build.xml)
如果你的构建脚本build.xml不在workspace根目录、或者说你的构建脚本不叫build.xml。那么需要在高级里设置Build File选项的路
在这里插入图片描述

build.xml配置文件请查看附件“build.xml说明”,里面有每句配置说明;

checkstyleBuild.xml配置文件请查看附件“checkstyleBuild.xml说明”,里面有每句配置说明;

findBugsBuild.xml配置文件请查看附件“findBugsBuild.xml说明”,里面有每句配置说明。

2.4 构建后操作
用于定义当前项目构建完之后的一些操作,比如构建完之后将checkstyle结果输出到指定日志文件,重新发布项目,去执行其他项目构建等。
在这里插入图片描述
2.5 构建后发布项目
注意,首先你必须安装好Deploy Plugin插件,然后在tomcat的conf目录配置tomcat-users.xml文件,如我这里配置的是manager, 在节点里添加如下内容:
在这里插入图片描述
配置完之后一次war包路径、用户名、密码、主机即可
参数说明:
在这里插入图片描述

WAR/EAR files:war文件的存放位置,如:**/build/warDest/ad-gx-admin.war。
Context path:访问时需要输入的内容,如ad-gx-admin访问时如下: http://47.100.63.28:10001/ ofCard/ad-gx-admin如果为空,默认是war包的名字。
Container:选择你的web容器,如tomca 7.x
Manager user name:填入tomcat-users.xml配置的username内容
Manager password:填入tomcat-users.xml配置的password内容
Tomcat URL:填入http://192.168.x.x:8080/
Deploy on failure:构建失败依然部署,一般不选择   注意:虽然这种部署方法可能会导致tomcat加载时出现卡死的现象。但是也是最简单的部署方式。如果卡死了重启下就好了,将tomcat的java内存参数调高可以解决这个问题。最后不要忘记点击保存喔。好了!到此一个项目的获取源码,打包,远程部署