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存放路径,在根结点下增加如下结点
<localRepository>/data/program/apache-maven-3.5.3/package</localRepository>
在<mirrors>结点下新增如下的镜像结点
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
其他相关配置可以查看网上的教程。配置之后,新增相关的环境参数,修改/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上面的一个单元测试的样例代码。为了配合findbugs、checkstyle以及pmd,需要配合项目的pom.xml文件进行配置,增加如下的配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.7</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</reporting>
创建成功之后点击立即创建,即可立刻编译项目。
建议在使用的过程中自定义checkstyle文件,否则有一些不合理的代码校验。手动进行构建,成功之后的截图如下
至此,简单的构建环境已经搭建完毕,对于后续的其他功能,例如结果发送和权限控制,再进行后续补充