代码质量检测SonarQube

时间:2020-05-30
本文章向大家介绍代码质量检测SonarQube,主要包括代码质量检测SonarQube使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

代码质量检测SonarQube

1. SonarQube基础java开发,需安装open JDK8版本
2. SonarQube需要依赖MySQL数据库,至少5.6版本以上
3. SonarQube的小型实例至少4G内存,如果大型实例需要16G内存

SonarQube安装部署

#安装软件
[root@sonar ~]# yum ‐y install git java unzip wget

#安装数据库
[root@sonar ~]# mkdir /server/tools -p
[root@sonar ~]# cd /server/tools/
[root@sonar ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

#解压文件
[root@sonar tools]# tar xf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz 
[root@sonar tools]# mv mysql-5.6.44-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.44
[root@sonar tools]# cd /usr/local/

#创建软连接
[root@sonar local]# ln -s mysql-5.6.44 mysql

#添加用户和用户组
[root@sonar local]# useradd -u 618 -G mysql -s /sbin/nologin -M mysql
[root@sonar local]# useradd -u 618 -g mysql -s /sbin/nologin -M mysql

#创建数据目录
[root@sonar local]# mkdir -p /data/mysql/data

#授权用户
[root@sonar local]# chown -R mysql:mysql /data/mysql/data
[root@sonar local]# chown -R mysql:mysql /usr/local/mysql*

#添加环境变量
[root@sonar local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@sonar local]# source /etc/profile

#初始化数据库
[root@sonar local]# yum -y install libaio-devel
[root@sonar local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

#启动数据库
[root@sonar local]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[root@sonar local]# mv mysql/support-files/mysql.server /etc/init.d/mysqld
[root@sonar local]# /etc/init.d/mysqld start

#设置数据库密码
[root@sonar ~]# mysqladmin -uroot password '123'

#创建数据库
[root@sonar ~]# mysql -uroot -p123 -e "create database sonar charset utf8mb4;"

#SonarQube服务安装
下载sonar 
https://www.sonarqube.org/downloads/
[root@sonar tools]# unzip sonarqube-7.0.zip 
[root@sonar tools]# mv sonarqube-7.0 /usr/local/sonarqube

#创建sonar用户
[root@sonar tools]# useradd sonar
[root@sonar tools]# chown -R sonar:sonar /usr/local/sonarqube

#配置sonar连接本地数据库
[root@sonar ~]# grep '^[a-Z]' /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
[root@sonar ~]# 

#使用普通用户启动sonarqube(必须以普通用户启动,否则会启动失败)
[root@sonar ~]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"

浏览器访问:http://10.0.1.203:9000

用户名admin 密码admin

生成一个tokin,只显示一次记录好

配置管理sonar 安装插件

1.安装中文汉化插件
在页面上找到administrator > Marketplace > 搜索框 chinese,出现一个 chinese pack 然后点击install,安装完点击restart 重启生效

2.默认已安装C JAVA Python PHP JS 等代码质量分析工具,如果一个项目使用了JAVA CSS JS HTML,默认情况下sonar
只会检测JAVA,JS等代码的漏洞和bug,如果安装了HTML、CSS等插件,则会检测该项目代码中JAVA JS HTML CSS代码
的漏洞和bug

手动安装插件

[root@sonar tools]# tar xf sonar_plugins.tar.gz
[root@sonar tools]# mv /usr/local/sonarqube/extensions/plugins /usr/local/sonarqube/extensions/plugins_bak
[root@sonar tools]# mv plugins /usr/local/sonarqube/extensions/plugins
[root@sonar tools]# tar xf sonar_plugins.tar.gz -C /usr/local/sonarqube/extensions/
[root@sonar tools]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart"

jenkins安装SonarQube检测

[root@jenkins ~]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
[root@jenkins ~]# unzip sonar-scanner-cli-4.2.0.1873-linux.zip
[root@jenkins ~]# mv sonar-scanner-4.2.0.1873-linux /usr/local/sonar-scanner

#修改文件配置
[root@jenkins ~]# grep -Ev '#|^$' /usr/local/sonar-scanner/conf/sonar-scanner.properties 
sonar.host.url=http://10.0.1.203:9000
sonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba   #这里填写sonar服务器生成的令牌
sonar.sourceEncoding=UTF-8
[root@jenkins ~]# 

#推送html代码并分析
[root@jenkins ~]# cd /var/lib/jenkins/workspace/test-job
/usr/local/sonar-scanner/bin/sonar-scanner \
  -Dsonar.projectKey=html \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://10.0.1.203:9000 \
  -Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba

手动推送JAVA项目

#方法一:
[root@jenkins tools]# cd /var/lib/jenkins/workspace/maven-job
[root@jenkins maven-job]# /usr/local/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectKey=java \
-Dsonar.sources=.

#方法二
[root@jenkins tools]# cd /var/lib/jenkins/workspace/maven-job
[root@jenkins maven-job]# mvn sonar:sonar \
-Dsonar.host.url=http://10.0.1.203:9000 \
-Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba

sonar集成到jenkins中

jenkins配置SonarQube服务端

系统管理->系统设置->sonarQube 告诉jenkins SonarQubeServer服务端地址
1.Name随意填写
2.URL添加SonarQube的地址
3token添加一个secret text 填写之前安装SonarQube的Token

jenkins配置执行sonar-scanner命令的家目录,让jenkins能找到该命令 系统管理->全局工具配置

java项目增加构建项sonar

方法一:

sonar.projectName=${JOB_NAME}
sonar.projectKey=java
sonar.sources=.
sonar.java.binaries=target/sonar

方法二:

clean
verify
sonar:sonar
-Dsonar.host.url=http://10.0.1.203:9000
-Dsonar.login=bd24704eaaf945f7c0e73f3b3b3958f0c3fc65ba

html项目构增加建项sonar

sonar.projectName=${JOB_NAME}
sonar.projectKey=html
sonar.sources=.

原文地址:https://www.cnblogs.com/opesn/p/12993945.html