1、前言
Jenkins是一款基于java开发的持续集成工具,结合相关的工具可以运行相关的代码检测工具。在我们的实现项目中,我们使用的spring boot+spring cloud构建的项目,项目中为了规范代码的质量,我们引入了pmd、findbugs、checkstyle这3个静态代码检查工具。
2、安装Jenkins
Jenkins是使用java开发的,需要java运行环境才可以运行。Jenkins的提供了多种安装方式,包括了linux安装包、tomcat方式以及jar包运行的方式。个人较为习惯直接使用tomcat进行安装的方式,此外,如果有较多的项目需要进行构建,Jenkins还支持多节点的方式。由于项目组中的项目编译时间都比较短,因此没有部署集群的方式。对于软件的版本,并没有太多的要求,可以直接使用最新的版本即可。
为了规范,我们将所有的软件都安装在/data/program目录下。我们的服务器为centos7.4
2.1、安装java
安装java环境,具体的步骤如下
sudo tar vzxf jdk1.8.0_131.tar.gz -C /data/program/
sudo ln -s /data/program/jdk1.8.0_131 /data/program/jdk
配置环境参数,修改/etc/profile,在文件末尾添加如下的内容
export JAVA_HOME=/data/program/jdk
export PATH=$PATH:$JAVA_HOME/bin
修改之后重新登录或重新加载这个文件即可生效。
2.2、安装tomcat
由于使用的是tomcat的方式,而且在服务器端只有这个单独的服务,直接将下载的war包解压到tomcat的ROOT目录下。具体操作如下:
sudo su
tar vzxf apache-tomcat-8.5.31.tar.gz -C /data/program/
ln -s /data/program/apache-tomcat-8.5.31/ /data/program/tomcat
useradd -d /data/home/www -s /sbin/nologin www
rm -rf /data/program/apache-tomcat-8.5.31/webapps/*
mkdir -m 750 /data/program/apache-tomcat-8.5.31/webapps/ROOT
unzip jenkins.war -d /data/program/apache-tomcat-8.5.31/webapps/ROOT/
chown -R www.www /data/program/apache-tomcat-8.5.31/
执行如下命令之后,可以配置相关的配置参数信息,指定jenkins的工作目录,修改/data/program/apache-tomcat-8.5.31/bin/catalina.sh文件,在最开始的地方加入如下的配置。
JAVA_HOME=/data/program/jdk
JAVA_OPTS="-server -Djava.security.egd=file:/dev/./urandom -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF-8"
#jenkins的工作目录
export JENKINS_HOME="/data/program/tomcat/webapps/ROOT/data"
2.3、安装maven
我们的项目都是使用maven进行构建的,下载之后配置如下。需要注意目录的权限,否则下载jar时会因为权限问题导致构建失败
sudo tar vzxf apache-maven-3.5.3-bin.tar.gz -C /data/program/
sudo mkdir /data/program/apache-maven-3.5.3/package
chown -R www.www /data/program/apache-maven-3.5.3/
修改/data/program/apache-maven-3.5.3/conf/settings.xml文件,变更下载的jar存放路径,在根结点下增加如下结点
/data/program/apache-maven-3.5.3/package
在
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
repo2
central
Human Readable Name for this Mirror.
http://repo2.maven.org/maven2/
central
Maven Repository Switchboard
http://repo1.maven.org/maven2/
central
jboss-public-repository-group
central
JBoss Public Repository Group
http://repository.jboss.org/nexus/content/groups/public
其他相关配置可以查看网上的教程。配置之后,新增相关的环境参数,修改/etc/profile文件,增加如下配置,配置之后如下
JAVA_HOME=/data/program/jdk
MAVEN_HOME=/data/program/apache-maven-3.5.3
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export JAVA_HOME JRE_HOME PATH MAVEN_HOME
2.4、其他
由于我们使用git管理项目,还需要在系统中按照git软件,命令如下:
sudo yum install -y git
有可能需要关闭防火墙,或者开启防火墙规则
systemctl stop firewalld
systemctl disable firewalld
3、配置jenkins
启动jenkins之后,为了便于使用,需要再安装一些插件。
3.1、启动jenkins
通过上述的前提操作,可以直接启动jenkins所在的tomcat,启动程序
sudo -u www /data/program/apache-tomcat-8.5.31/bin/startup.sh
tomcat启动之后,通过http://ip:8080可以访问到jenkins。
按要求输入密码之后,因为无法直接更新插件信息,直接关闭安装插件的窗口,后续进行手动安装。初始界面如下
3.2、安装插件
进入“系统管理-管理插件-可选插件”,点击底部的“立即获取”按钮,更新列表,安装如下的插件
- Git : This plugin integrates Git with Jenkins. ## 版本管理git插件
- Maven Integration : This plug-in provides, for better and for worse, a deep integration of Jenkins and Maven: Automatic triggers between projects depending on SNAPSHOTs, automated configuration of various Jenkins publishers (Junit, ...).## 项目构建 Maven 的插件
- FindBugs : This plug-in generates the trend report for FindBugs, an open source program which uses static analysis to look for bugs in Java code. ## 静态代码检查工具FindBugs插件
- PMD : This plug-in generates the trend report for PMD, an open source static code analysis program. ## 静态代码检查工具PMD插件
- Checkstyle : This plug-in generates the trend report for Checkstyle, an open source static code analysis program. ## 静态代码检查工具checkstyle插件
- Static Analysis Collector : This plug-in is an add-on for the plug-ins Checkstyle, Dry, FindBugs, PMD, Tasks, and Warnings: the plug-in collects the different analysis results and shows the results in a combined trend graph. Additionally, the plug-in provides health reporting and build stability based on these combined results. ## 静态代码检测结果汇集工具
- Role-based Authorization Strategy : 用户权限管理插件
- Email Extension : This plugin is a replacement for Jenkins's email publisher. It allows to configure every aspect of email notifications: when an email is sent, who should receive it and what the email says ## 邮件扩展插件
- Email Extension Template :This plugin allows administrators to create global templates for the Extended Email Publisher
插件安装成功界面如下
插件安装成功之后,进入 系统管理-全局工具配置 。在该页面配置相关的环境信息,包括Maven Configuration、JDK、Maven这些配置参数信息。
插件安装过程中,如果网络较慢,可以进入“系统管理-插件管理-高级”页面的升级站点修改URL信息。例如将原配置信息修改为: http://mirror.esuni.jp/jenkins/updates/update-center.json
也可以自行上镜像地址查询:
http://mirrors.jenkins-ci.org/status.html
3.3、创建新任务
进入 主页-新建任务 页面,填写任务名创建一个maven项目。使用我在github上面的一个单元测试的样例代码。 为了防止占用过多的空间,保存最近5次构建数据,并填写项目的简单描述。 填写一个源码信息,并增加git的项目帐号信息以及分支信息。由于github上面的项目拉取时不需要账号信息,因此没有进行没有。对于需要账号信息才能进行源码拉取的,需要点击Credentials处的Add-jenkins按钮,并填写密码信息,填写完毕之后,在下拉框中进行选择。 增加构建触发器,目前我们主要使用的是定时构建,具体的规则可以查看提示的定义。较为常用的是定时构建以及轮询SCM。 由于项目中包含多个工程,本次的配置主要还是为了编译其中的一个子项目,因此需要指定具体的pom文件的存放路径,默认是在根目录下。配置编译参数,具体的如下图,maven的编译参数如下clean package findbugs:findbugs checkstyle:checkstyle pmd:pmd。 此外,在构建设置中要开启findbugs、checkstyle以及pmd。为了配合findbugs、checkstyle以及pmd,需要配合项目的pom.xml文件进行配置,增加如下的配置
org.apache.maven.plugins
maven-checkstyle-plugin
3.0.0
org.apache.maven.plugins
maven-pmd-plugin
3.7
org.codehaus.mojo
findbugs-maven-plugin
3.0.4
org.springframework.boot
spring-boot-maven-plugin
org.apache.maven.plugins
maven-jxr-plugin
2.5
创建成功之后点击立即创建,即可立刻编译项目。
建议在使用的过程中自定义checkstyle文件,否则有一些不合理的代码校验。手动进行构建,成功之后的截图如下
至此,简单的构建环境已经搭建完毕,对于后续的其他功能,例如结果发送和权限控制,再进行后续补充