SonarQube+Jenkins代码质量平台使用

本文详细介绍了如何安装和配置SonarQube进行代码质量管理,包括SonarQube的基本介绍、安装步骤(涉及JDK、MySQL的安装)、安装汉化包以及在Jenkins中的集成。此外,还提供了在Jenkins中配置SonarQube的教程,通过SonarQube可以检查代码规范、潜在bug、重复量和注释程度,实现代码质量的持续监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前论

随着代码量的增加,对于代码质量的要求越来越高,这就需要一个工具去展现代码的质量,只要想到的软件产品基本上都已经存在,我们可以采用sonarqube去展现我们的代码

一、sonarqube基本介绍

首先这是一个开源的用于管理代码质量的框架,这也决定了他的使用程度,还可以生成数据报告让代码质量直观呈现,这个框架还支持多种编程语言,使用的目的:
检查代码是否准守编程规范;
检查设计存在的潜在bug;
检查代码的重复量;
检查代码的注释程度;
免费并且可以直观展现代码质量;

二、安装sonarqube

1.下载安装包sonarqube

直接在官网上下载就好,下载地址 https://www.sonarqube.org/downloads/ 社区版是免费的请下载社区版,不建议下载最新版的,最新版的 sonarqube-8.9.0.43852 需要jdk11,点击最下面 Show all versions 选择 6.77 社区版就好,网上大部分用的5.5版本太老了不建议用,6.77版本需要jdk8环境。
在这里插入图片描述
将安装包sonarqube6.77.zip放置到 /web 下面,解压到当前目录 unzip sonarqube6.77.zip 修改配置文件

	vim /web/sonarqube-6.7.7/conf/sonar.properties
	sonar.jdbc.username=sonar
	sonar.jdbc.password=Jinan@123
	sonar.jdbc.url=jdbc:mysql://192.168.64.130:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
	sonar.web.host=0.0.0.0
	sonar.web.context=/
	sonar.web.port=9000

启动sonarqube

 cd /web/sonarqube-6.77/bin/linux-x86-64
 sh sonar.sh start /stop/restart

这个时候有可能启动失败,打开日志看看错误排查一下
tail -200f /web/sonarqube-6.77/logs/sonar.log
启动完成后 打开网页 http://192.168.64.130:9000 看看是否加载出页面

2 sonarqube的运行原理

四个重要组成部分
SonarQube Server;
SonarQube Plugins
SonarQube Database
SonarQube Scanner

sonarqube需要配置数据库存放检测项目后得到的分析数据,为了实现可持续的监测,我们需要安装持续集成工具jenkins,需要sonar插件 sonar-scan执行项目分析指令。
1 从软件配置管理如git或者svn上拉取代码,2 自动构建、代码分析,3 将分析报告发送给sonarqube,4 sonarqube将分析报告存放到数据库中(mysql、oracle),5构建完成,通过各种方式进行展示。

2.1安装jdk1.8

将安装包 jdk-linux-x64.tar.gz 在 /usr/local/java 下解压后配置一下环境变量就可以,
vim /etc/profile 设置JAVA_HOME和PATH变量,source /etc/profile 生效配置文件。
使用java -version 看看是否安装完成。

2.2安装mysql

安装方式有很多种,因为是离线安装这次选用使用rpm包进行安装,之前使用tar.gz包安装太麻烦。下载地址 http://mirrors.sohu.com/mysql/MySQL-5.7/ 我安装的是mysql-5.7.23-1.fc27.x86_64.rpm-bundle.tar这个版本。

2.2.1解压和安装rpm文件

将下载后的安装包解压到/home/mysql 下(解压命令 tar -xf mysql-5.7.23-1.fc27.x86_64.rpm-bundle.tar -C /home/mysql/), 检查是否有mysqlrpm -qa | grep mysql ,卸载查询到的mysql rpm -e xxxxx 依次安装如下文件

rpm -ivh mysql-community-common-5.7.23-1.fc27.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.23-1.fc27.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.23-1.fc27.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.23-1.fc27.x86_64.rpm

rpm -ivh mysql-community-client-5.7.23-1.fc27_64.rpm

rpm -ivh mysql-community-server-5.7.23-1.fc27_64.rpm
2.2.2启动mysql重置密码

启动mysql服务 systemctl start mysqld
重置mysql的root密码(新密码最好复杂一点,大小写、特殊符号、数字组合8位数以上,否则后面校验不通过还需要修改密码)
先查找 grep ‘temporary password’ /var/log/mysqld.log
再重置 mysql -u root -p
SET PASSWORD FOR ‘root’@‘localhost’= " Jinan@123";

2.2.3 创建sonar账户
   MySQL> CREATE USER 'sonar'@'%' IDENTIFIED BY 'Jinan@123';
   MySQL> CREATE DATABASE sonar CHARACTER SET UTF8;
   MySQL> GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'%';
2.2.4设置开机启动,开启远程访问

设置开机自启动

	MySQL>systemctl enable mysqld.service 
	MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Jinan@123' WITH GRANT OPTION;
	MySQL>FLUSH PRIVILEGES;
	MySQL>exit;

3.安装、配置sonar-scan插件

插件下载地址 https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
我使用的是 sonar-scanner-2.8.zip
将安装包拷贝到 /opt 下面,解压安装包sonar-scanner-2.8.zip 到本目录就好

vim /opt/sonar-scan-2.8/conf/sonar-scan.properties 
sonar.host.url=http://192.168.64.130:9000
sonar.login=admin
sonar.password=admin
sonar.jdbc.username=sonar
sonar.jdbc.password=Jinan@123
sonar.jdbc.url=jdbc:mysql://192.168.64.130:3306/sonar?useUnicode=true&characterEncoding=utf8

4安装汉化包

不安装也可以,先下载安装包 sonar-l10n-zh-plugin-1.10.jar,然后将下载后的jar包放在 /web/sonarqube-6.7.7/extensions/plugins下面即可,重启sonarqube。

二 在jenkins中配置sonarqube

如果不借助其他持续集成工具,直接手动执行也可以进行代码分析,先在maven的settings.xml设置sonar的信息。

<profiles>
 <profile>
    <id>sonar</id>
    <properties>
        <sonar.jdbc.url>jdbc:mysql://192.168.64.130:3306/sonar</sonar.jdbc.url>
        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
        <sonar.jdbc.username>root</sonar.jdbc.username>
        <sonar.jdbc.password>root</sonar.jdbc.password>
        <sonar.host.url>http://192.168.64.130:9000</sonar.host.url> 
    </properties>
</profile>
</profiles>
<activeProfiles>
    <activeProfile>sonar</activeProfile>
</activeProfiles> 

然后在项目中执行命令 mvn sonar:sonar

这样做虽然也使用了sonarqube进行代码分析,我还是建议使用持续集成工具进行代码质量分析,jenkins已经很好地集成sonarqube。

1 安装sonar-scan插件

因为是内网无法上网在线安装,这次使用安装hpi 文件来安装插件。
下载地址
https://plugins.jenkins.io/sonar/#releases
我使用的是2.8这个版本,感觉很多人使用的2.4版本太老了,
在这里插入图片描述
在插件管理中心 > 高级
选择我们刚下载的文件 sonar.hpi 点击上传,上传完成后重启jenkins服务。然后我们在已安装的软件中就可以看到sonar-scan插件。

2在jenkins中配置sonarqube

打开系统配置 找到SonarQube Servers
输入配置信息如下,
在这里插入图片描述

token获取方式
在这里插入图片描述

进行全局配置
在这里插入图片描述
这个时候我们可以进行构建了
效果如下
在这里插入图片描述
点击SonarQube可以查看代码质量检测效果
在这里插入图片描述

总结

按照网上提供的各种文档成功安装sonarqube,这个软件在代码质量检测还是挺好的,使用起来也比较方便,同时在jenkins下集成较为方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值