vlambda博客
学习文章列表

10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼

1、jenkins安装部署



01
jenkins下载


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


02
jenkins环境安装

  • 安装jdk

  •  上传jenkins安装包

  • 启动jenkins,耐心等待启动完成(第一次需要个几分钟)

    java -jar jenkins.war


    执行日志里一定要记着下面红框里的东西

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • 访问jenkins,按步骤安装

    http://192.168.1.12:8080    端口默认就是8080


    1、输入上一步记住的密码,或者去/root/.jenkins/secrets/initialAdminPassword文件里拷贝

    2、安装推荐的插件(需要耐心等待)

    3、创建管理员,点击保存并完成

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


    4、开始jenkins

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


03
全局工具配置

进入Manage Jenkins-->Global Tool Configuration,中文的话就是系统管理-->全局工具配置,依次配置各个工具

  • jdk

    点击新增,取消自动安装,填写jenkins所在服务器的jdk路径

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • git

    先在jenkins所在服务器上手动安装git


    下载git 2.29.0版本

    下载后上传git至服务器解压


    进入git目录执行如下操作:

     #安装编译依赖
    yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker


    # 检验相关依赖,设置安装路径
    ./configure --prefix=/usr/local/git


    # 编译安装
    make && make install


    # 删除已有的 git
    yum remove git


    # 配置环境变量
    vim /etc/profile


    # GIT_HOME
    GIT_HOME=/usr/local/git
    export PATH=$PATH:$GIT_HOME/bin


    # 刷新
    source /etc/profile


    点击add git,取消自动安装,填写jenkins所在服务器git路径

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • maven


    下载后上传maven至服务器解压,并配置环境变量,并配置maven的settings.xml文件,和自己本地一样

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • 其他工具如有需要也可以进行配置


注意:全局工具中的配置写的基本都是jenkins所在服务器上的各个工具的路径


2、jenkins集成sonar、jacoco

10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


01
jenkins安装插件


进入系统管理 --> 插件管理,安装sonar插件  


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


安装maven插件


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


安装jacoco插件


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


安装gitlab和gitlab hook插件


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


等待安装完成后重启jenkins


02
jenkins配置sonar服务

1、先在sonar平台上创建一个token  

进入我的账号-->安全,复制令牌,一定要记住只有一次机会

3aa08af94991e923e4468b3931035ef6328101e6


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


2、jenkins上配置sonar的token凭据

进入系统管理-->Manage Credentials,点击全局,再点击添加凭据


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


3、设置凭据并保存

10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


4、jenkins配置sonar服务

进入系统管理-->系统设置,找到SonarQube servers区域,点击Add SonarQube


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


最后点保存


5、jenkins配置sonar扫描器

进入系统管理-->全局工具配置,找到SonarQube Scanner区域,点击新增SonarQube Scanner


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


03
jenkins配置扫描任务

1、点击新建Item,按照下图进行输入和选择  


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


2、设置General


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


3、设置源码管理


通常我们的代码通过版本管理工具进行管理,svn或者git都比较常见,咱们这里用的是git

10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


4、设置构建触发器

构建触发器的意思是在什么情况下这个任务会自动执行,自动触发的方式有很多中,一般选择一两种即可;文档会介绍几种用法


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • GitLab webhook

    对应的就是图中的Build when a change is pushed to GitLab,设置如下:


    1、勾选Build when a change is pushed to GitLab,点击高级最后的generate 生成secret

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


    2、在gitlab上创建新的webhook

    登录gitlab,打开自己的项目仓库,点击设置-->导入所有仓库

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


    测试一下,界面上方显式http 200则说明配置成功

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • 定时构建和轮询SCM

    1、定时构建

    顾名思义,定时构建就是指到了规定的时间就会自动执行这个任务

    2、轮询SCM

    轮询SCM也是一种定时任务,他的意思是到了指定的时间会去判断代码版本库是否发生变化,如果发生变化,则自动执行任务,没有变化则不执行任务

    3、定时任务的规则

    定时任务的规则和linux的定时任务写法是一致的,

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


    第一个*表示分钟,取值是0-59

    第二个*表示小时,取值是0-23

    第三个*表示一个月的几号,取值1-31

    第四个*表示是几月,取值1-12

    第五个*表示周几,取值0-7,其中0和7都代表周日


举几个例子:

  • 每隔5分钟构建一次: H/5  *  *  *  *

  • 每两小时构建一次: H H/2  *  *  *

  • 周一到周五早9点到下午16点之间,每隔两小时的第45分钟执行:45  9-16/2  *  *  1-5

  • 除了12月,每个月的1号15号执行:H  H  1,15  1-11  *

  • 每小时的前半个小时每隔10分钟执行一次:H(0-29)/10  *  *  *  *




  • 其他工程构建后触发

    指的是在其他任务执行完成后,自动驱动当前任务执行,一般是具有上下游关系时使用


    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


5、配置Build

因为咱们这个任务是做sonar扫描和jacoco统计的,所以Goals and options设置如下,并不是所有任务都这么配哦


clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=true


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


6、配置jacoco报告插件

jacoco报告插件可以将覆盖率情况最后展示在jenkins的任务结果中,并且还可以针对覆盖率是否通过进行设置;


覆盖率不达标则任务失败,覆盖率达标则任务成功


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


设置代码覆盖率的最大值最小值,勾选不满足最小值时任务失败,设置最小值(根据各自公司定)

增量变化,如果勾选了,指的是比上一次成功构建的覆盖率的增量变化,只能比设置的增量大,比增量小的任务也会失败


覆盖率不满足时任务失败则sonar代码扫描不会进行


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


7、sonar扫描插件设置


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


然后点击高级,输入如下内容

-Dsonar.projectKey=jacoco$BUILD_NUMBER

-Dsonar.projectName=jacocojenkins

-Dsonar.language=java

-Dsonar.sourceEncoding=UTF-8


10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


8、保存后执行

  • 手动执行

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


  • 自动执行

    自动执行取决于设置的构建触发,咱们以git代码提交为触发条件,修改本地项目代码,然后git提交

    可以在jenkins任务界面看到自动启动的执行

    10分钟搭建一套代码质量监控平台,开发从此不敢摸鱼


END