centos7搭建sonarqube环境+jenkins部署全流程

时间:2022-11-27 23:12:50

一、简介
sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量

不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。

二、sonarqube环境搭建

1.下载jdk安装包,因为sonarqube环境是依赖JVM运行的,所以需要安装jdk

下载jdk11并做环境配置

vim /etc/profile

最后一行添加:

export PATH=/usr/local/java/bin/:$PATH

2.下载sonarqube安装包:
官网:https://www.sonarqube.org/

centos7搭建sonarqube环境+jenkins部署全流程

centos7搭建sonarqube环境+jenkins部署全流程

下载相应的版本,我这里使用SonarQube 8.2社区版本

centos7搭建sonarqube环境+jenkins部署全流程

3.使用wincp工具将sonarqube安装包传输到centos7中
4.安装解压和压缩工具
yum install -y unzip zip

解压sonarqube-8.2.0.32929.zip到/opt下改名为sonarqube
unzip sonarqube-8.2.0.32929.zip

mv sonarqube-8.2.0.32929 /opt/sonarqube

centos7搭建sonarqube环境+jenkins部署全流程

5.sonar-pdf-plugin插件打包

sonar-pdf-plugin插件源码   https://gitee.com/GeoStarMobile/sonar-pdf-plugin

下载sonar-pdf-plugin的源码(需要做部分修改),IDEA打包生成jar包,然后拷贝到 /opt/sonarqube/extensions/plugins目录下。

centos7搭建sonarqube环境+jenkins部署全流程

6.配置sonarqube环境变量

vim /etc/profile

export SONAR_HOME=/opt/sonarqube
export PATH=$PATH:$SNOAR_HOME/bin/linux-x86-64

source /etc/profile

7.赋予执行权限,解决后续权限不足的问题
chmod 777 sonarqube

8.创建普通用户权限(root用户不能启动es)
adduser sonaruser
passwd sonaruser

9.给普通用户赋sonar执行权限,以及Java执行权限

chown -R sonaruser:sonaruser /opt/sonarqube
chown -R sonaruser:sonaruser /usr/local/java

10.切换普通用户
su sonaruser

11.启动服务

/opt/sonarqube/bin/linux-x86-64/sonar.sh start

tail -f /opt/sonarqube/logs/sonar.log

centos7搭建sonarqube环境+jenkins部署全流程

12.浏览器再次输入http://192.168.4.239:9000(默认 admin/admin)

centos7搭建sonarqube环境+jenkins部署全流程

sonar服务启动会启动sonar服务,elasticsearch服务、MySQL服务
   ps -ef | grep elasticsearch
   ps -ef | grep soanr
   ps -ef | grep mysqld
可通过以上命令查看服务进程

13.安装中文插件

centos7搭建sonarqube环境+jenkins部署全流程

三、jenkins集成sonarqube

1.安装插件SonarQube Scanner

centos7搭建sonarqube环境+jenkins部署全流程

2.sonar生成令牌,jenkins的凭据需要用到

centos7搭建sonarqube环境+jenkins部署全流程

centos7搭建sonarqube环境+jenkins部署全流程

3.jenkins系统配置中添加SonarQube servers的配置信息

centos7搭建sonarqube环境+jenkins部署全流程

4.全局配置工具中安装SonarQube Scanner

centos7搭建sonarqube环境+jenkins部署全流程

5.新建sonarqube项目test

centos7搭建sonarqube环境+jenkins部署全流程

6.jenkins新建*构建项目

centos7搭建sonarqube环境+jenkins部署全流程

7.更改jenkins配置文件中.m2目录下 settings.xml和代码文件中pom.xml

settings.xml加入如下内容

centos7搭建sonarqube环境+jenkins部署全流程

pom.xml加入如下内容:

centos7搭建sonarqube环境+jenkins部署全流程

8.去jenkins部署项目,部署完毕查看sonarqube检测情况

centos7搭建sonarqube环境+jenkins部署全流程

centos7搭建sonarqube环境+jenkins部署全流程