spring cloud微服务实践之每日构建

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。

spring cloud微服务实践之每日构建_第1张图片
初始登录文件

按要求输入密码之后,因为无法直接更新插件信息,直接关闭安装插件的窗口,后续进行手动安装。初始界面如下
spring cloud微服务实践之每日构建_第2张图片
登录主页

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

插件安装成功界面如下

spring cloud微服务实践之每日构建_第3张图片
插件安装成功

插件安装成功之后,进入 系统管理-全局工具配置 。在该页面配置相关的环境信息,包括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上面的一个单元测试的样例代码。
spring cloud微服务实践之每日构建_第4张图片
创建新任务

为了防止占用过多的空间,保存最近5次构建数据,并填写项目的简单描述。
spring cloud微服务实践之每日构建_第5张图片
任务通用信息

填写一个源码信息,并增加git的项目帐号信息以及分支信息。由于github上面的项目拉取时不需要账号信息,因此没有进行没有。对于需要账号信息才能进行源码拉取的,需要点击Credentials处的Add-jenkins按钮,并填写密码信息,填写完毕之后,在下拉框中进行选择。
spring cloud微服务实践之每日构建_第6张图片
源码管理

增加构建触发器,目前我们主要使用的是定时构建,具体的规则可以查看提示的定义。较为常用的是定时构建以及轮询SCM。
spring cloud微服务实践之每日构建_第7张图片
构建触发

由于项目中包含多个工程,本次的配置主要还是为了编译其中的一个子项目,因此需要指定具体的pom文件的存放路径,默认是在根目录下。配置编译参数,具体的如下图,maven的编译参数如下clean package findbugs:findbugs checkstyle:checkstyle pmd:pmd。
构建参数配置

此外,在构建设置中要开启findbugs、checkstyle以及pmd。
spring cloud微服务实践之每日构建_第8张图片
构建设置

为了配合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
            
        
    

创建成功之后点击立即创建,即可立刻编译项目。

为了后续便于结果信息的汇总,我们安装了Static Analysis Collector插件,因此,配置构建后操作项中,我们增加了该动作,具体如下图
spring cloud微服务实践之每日构建_第9张图片
构建后操作

建议在使用的过程中自定义checkstyle文件,否则有一些不合理的代码校验。手动进行构建,成功之后的截图如下
spring cloud微服务实践之每日构建_第10张图片
构建结果

至此,简单的构建环境已经搭建完毕,对于后续的其他功能,例如结果发送和权限控制,再进行后续补充

你可能感兴趣的:(spring cloud微服务实践之每日构建)