文章目录
前论
随着代码量的增加,对于代码质量的要求越来越高,这就需要一个工具去展现代码的质量,只要想到的软件产品基本上都已经存在,我们可以采用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下集成较为方便。