码迷,mamicode.com
首页 > 其他好文 > 详细

sonarqube 代码质量管理平台搭建

时间:2020-09-17 19:51:13      阅读:28      评论:0      收藏:0      [点我收藏+]

标签:质量管理   codehaus   jpg   centos 7   安装   zip   dmi   shu   server   

SonarQube 代码质量管理平台搭建

SonarQube简介

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
此外,Sonar 的插件还可以对 Java 以外的其他编程语言(支持的语言包括:Java、PHP、C#、C、python 、Cobol、PL/SQL、Flex等)提供支持,对国际化以及报告文档化也有良好的支持。可以说Sonar是目前最强大的代码质量管理工具之一。

环境依赖

1.Centos7(自行安装搭建)

2.JDK1.8及以上

首先使用Java -version 查询本机是否已安装JDK环境,Centos7自带OpenJDK的环境,但是需要手动配置/etc/profile文件,在此之前需要开始找java的安装路径..每个人路径不一样。

下面提供寻找Java安装路径方法,(注意:which ,whereis找到的并不是Java环境的地址)

技术图片

[root@localhost local]#which java
usr/bin/java

[root@localhost local]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 2020/08/06 15:28:44 /usr/bin/java -> /etc/alternatives/java

[root@localhost local]#ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 2020/08/06 15:28:44 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/bin/java

此时拿到你的Java安装路径后 进入 /etc/profile 开始配置

vim /etc/profile 在末尾添加一下配置

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64  #(本机Java安装目录)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export TIME_STYLE=‘+%Y/%m/%d %H:%M:%S‘

保存退出 source /etc/profile

3.mysql5.7及以上

注意:不要使用MySQL8.0版本。

需要Mysql数据库支持;虽然SonarQube自带了H2数据库,但是为了方便管理数据推荐使用Mysql数据库

3.1下载MySQL源安装包

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3.2安装MySql源

yum -y install mysql57-community-release-el7-11.noarch.rpm

3.3安装MySQL服务器

yum install mysql-community-server

3.4启动MySQL服务

systemctl start  mysqld.service

3.5初始化数据库密码

新安装的mysql数据库 root用户 密码查询

grep "password" /var/log/mysqld.log   (密码为最后的不规则字符串)

获取密码后第一次登录请及时修改密码

命令如下:

update user set authentication_string = password(‘这里输入新密码‘),password_last_changed=now() where user=‘root‘;

3.6 数据库配置

mysql -u root -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER ‘sonar‘ IDENTIFIED BY ‘sonar_1234‘;
mysql> GRANT ALL ON sonar. TO ‘sonar‘@‘%‘ IDENTIFIED BY ‘sonar_1234‘;
mysql> GRANT ALL ON sonar. TO ‘sonar‘@‘localhost‘ IDENTIFIED BY ‘sonar_1234‘;
mysql> FLUSH PRIVILEGES;

注意:如数据库配置错误可参考https://blog.csdn.net/zq_zhang/article/details/77444753?utm_source=blogxgwz5

3.7退出数据库 quit

注意踩坑之处特别说明:

安装完成数据库并拿到初始密码出现无法登入的情况,造成出现的原因可能是随机的字符串密码出现转义造成无法登录,(此坑文档小哥遇到过太坑了),解决办法如下:

修改配置文件

vim /etc/my.cnf

在 pid 开头的下一句加入

skip-grant-tables 

保存退出,重启mysql服务

service mysqld restart

此时可以无密登录mysql 并修改密码(修改密码命令如上)

密码修改完成后请再次进入 vim /etc/my.cnf 将加入的语句直接删除

4.安装sonarqube和 sonarqube-runner或者sonar-scanner

在安装之前,介绍一下SonarQube和SonarQube Runner之间的关系。
SonarQube是服务器端,它主要有两个功能:1.分析源代码;2.因为它内嵌了Apache模块,所以提供Web端的界面访问。
SonarQube Runner是一个利用SonarQube服务端分析代码的命令行工具,可以把它简单理解为客户端。
所以,为了安装和调试方便,建议SonarQube和SonarQube Runner都下载。

建议安装后并解压到 usr/local

sonarqube下载地址: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.5.zip

sonarqube-runner下载地址
wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip

sonar-scanner下载地址  (与sonar-runner  效果差不多)
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip

sonarqube等插件下载速度贼慢,如有需要建议直接找文档小哥要安装包

4.1.下载各安装包完成后将文件压缩到/usr/local 如图所示

技术图片

4.2配置sonarqube 环境变量 vim /etc/profile 加入如下代码

export SONAR_HOME=/usr/local/sonarqube-6.7.5
export SONAR_RUNNER_HOME=/usr/local/sonar-scanner-3.0.3.778-linux
export SONAR_RUNNER_HOME=/usr/local/sonar-runner-2.4
PATH=$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin
export PATH

source /etc/profile 使之生效

验证:

sonar-runner -v

SonarQube Runner 2.4
Java 1.8.0_181 Oracle Corporation (64-bit)
Linux 3.10.0-862.9.1.el7.x86_64 amd64

4.3 修改配置文件

4.3.1配置Sonarqube
进入配置文件mulu:cd /usr/local/sonarqube-6.7.5/conf
修改配置文件:vim sonar.properties,修改内容如下:

sonar.jdbc.username=sonar				(第16行)
sonar.jdbc.password=Sonar_1234 #(配置数据库用户所用的密码)		(第17行)

sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false							(第26行)


sonar.web.host=192.168.31.218  #根据个人ip地址修改  (第105行)

sonar.web.port=9000						(第111行)
4.3.2配置 sonar-runner
进入目录cd /usr/local/sonar-runner-2.4/conf,修改配置文件:vim sonar-runner.properties
修改内容:

#Configure here general information about the environment, such as SonarQube DB details for example
 2 #No information about specific project should appear here
 3 
 4 #----- Default SonarQube server
 5 sonar.host.url=http://192.168.31.218:9000   # 根据个人ip地址修改
 6 
 7 #----- PostgreSQL
 8 #sonar.jdbc.url=jdbc:postgresql://localhost/sonar
 9 
10 #----- MySQL
11 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8
12 
13 #----- Oracle
14 #sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
15 
16 #----- Microsoft SQLServer
17 #sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
18 
19 #----- Global database settings
20 sonar.jdbc.username=sonar
21 sonar.jdbc.password=Sonar_1234
22 
23 #----- Default source code encoding
24 sonar.sourceEncoding=UTF-8
25 
26 #----- Security (when ‘sonar.forceAuthentication‘ is set to ‘true‘)
27 sonar.login=admin
28 sonar.password=admin
4.3.3配置 sonar-scanner
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://192.168.31.218:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

4.3.4修改elasticsearch配置

vim /usr/local/sonarqube-6.7.5/elasticsearch/config,修改配置为:

network.host: 192.168.31.218   
#
# Set a custom port for HTTP:
#
http.port: 9200

4.4创建普通用户 赋予权限

sonarqube需要普通用户才能启动,不能使用root用户,这个比较好办,新建用户和组,更改属组就可以:

[root@localhost local]# esadmin  # 取普通用户名字
[root@localhost local]# chown -R esadmin /usr/local/sonarqube-6.7.5

4.5启动sonarqube

[esadmin@localhost local]# /usr/local/sonarqube-6.7.5/bin/linux-x86-64/sonar.sh start
注意:必须是普通用户启动,并赋予权限

技术图片

4.5.1查看启动状态
su sonar ./bin/linux-x86-64/sonar.sh status

技术图片

4.5.2跟踪日志
tail -f /usr/local/sonarqube-6.7.5/logs/sonar.log

日志内容显示如下则启动成功

技术图片

5.登入web端

登入地址: http://192.168.31.218:9000    # (根据个人ip地址登录)

5.1创建项目

登入密码为 配置sonar-runner所配置的账号及密码 这里配置的账号密码都是 admin

可以开始创建新项目名称,新项目可以在帮助里面创建。
技术图片

5.2 下载中文包

可以在sonar的第三方应用市场下载中文包
技术图片

由于sonar版本问题可能无法在这里下载,可以进入以下地址下载对应的中文包

技术图片

中文包下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases

5.3 下载 sonar-pdfreport (质量分析报告插件)

质量分析报告插件下载地址:https://gitee.com/zzulj/sonar-pdf-plugin/releases

根据sonarqube版本下载相对应的版本,将插件放在  /usr/local/sonarqube-6.7.5/extensions/plugins
并重启sonar

全局配置sonar-pdfreport

技术图片

6,配置sonar-runner 或 sonar-scanner扫描工具

6.1 项目配置

在你所需要扫描的项目根目录下创建配置配置文件
vim sonar-project.properties

#must be unique in a given SonarQube instance
# 为sonarqube中创建的令牌名字
sonar.projectKey= ruichi  

# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
# 该名字可以随便取,主要用于结果展示的项目名字
sonar.projectName= cloud_phone  

# 项目版本号,有可能一个文件多次扫描
sonar.projectVersion=1.0   
 
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set. 
# 需要扫描的代码文件目录
sonar.sources= src/   

#这是target(如果没编译可以不写)
sonar.java.binaries=target/classes   (项目路径)

# 需要扫描的代码语言 如 Py PHP 等(注意 ,Python只写py后缀)
sonar.language=java  
 
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

6.2 开始扫描

注意:需要切换到 sonar-project.properties 配置文件的 上级目录位置执行,否则可能报错

[root@localhost local]#/usr/local/sonar-runner-2.4/bin/sonar-runner
或者  (取决于你用何种扫描工具)
[root@localhost local]#/usr/local/sonar-scanner-3.3.0.1492-linux/bin/sonar-scanner

6.3 浏览器登陆

http://192.168.31.218:9000 结果如下:

技术图片

6.4 获取分析报告结果

找到所扫描的项目,可在“更多” 点击下载pdf分析报告。
技术图片

sonarqube 代码质量管理平台搭建

标签:质量管理   codehaus   jpg   centos 7   安装   zip   dmi   shu   server   

原文地址:https://www.cnblogs.com/lqh950422/p/13640027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!