SonarQube代码质量工具

官网地址:https://www.sonarqube.org
服务器端下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
客户端工具下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
中文插件地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh
分支插件地址:https://github.com/mc1arke/sonarqube-community-branch-plugin

一、下载服务端并配置启动

1、准备工作

[root@localhost ~]$ sysctl -w vm.max_map_count=262144   #max_map_count 必须大于等于 262144
[root@localhost ~]$ sysctl -w fs.file-max=65536         #file-max 必须大于等于 65536
[root@localhost ~]$ ulimit -n 65536                     #运行sonarqube的用户能够打开 65536 文件描述符
[root@localhost ~]$ ulimit -u 2048                      #运行sonarqube的用户能够打开 2048个线程
[root@localhost ~]$ cat >> /etc/security/limits.conf << END
app soft nofile 65536
app hard nofile 65536
app - nproc 2048

END

2、下载并启动

[root@localhost ~]$ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
[root@localhost ~]$ unzip sonarqube-7.7.zip && mv sonarqube-7.7 /usr/local/
[root@localhost ~]$ ln -s /usr/local/sonarqube-7.7 /usr/local/sonarqube
[root@localhost ~]$ chown app.app /usr/local/sonarqube-7.7 -R           #app用户对此目录有读写权限
[root@localhost ~]$ su - app
[app@localhost ~]$ cd /usr/local/sonarqube/
[app@localhost sonarqube]$ vim conf/sonar.properties   #配置数据库和web登录信息
sonar.jdbc.url=jdbc:mysql://192.168.0.147:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  #数据库连接地址
sonar.jdbc.username=dev  #数据库账号
sonar.jdbc.password=xxxx #数据库密码
sonar.sorceEncoding=UTF-8
sonar.login=admin   #web页面注册的账号
sonar.password=admin  #web页面注册的密码

##启动服务
[app@localhost sonarqube]$ cd /usr/local/sonarqube/bin/linux-x86-64/
[app@localhost linux-x86-64]$ sh sonar.sh start


##下载插件,并重新启动
[app@localhost ~]$ cd /usr/local/sonarqube/extensions/plugins/
[app@localhost plugins]$ wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.27/sonar-l10n-zh-plugin-1.27.jar    #下载中文插件
[app@localhost plugins]$ wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.0.2/sonarqube-community-branch-plugin-1.0.2.jar  #下载分支插件
[app@localhost plugins]$ wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.0.2/sonarqube-community-branch-plugin-1.0.2.jar  #下载分支插件
[app@localhost plugins]$ \cp sonarqube-community-branch-plugin-1.0.2.jar sonar-l10n-zh-plugin-1.27.jar /usr/local/sonarqube/lib/common    #将插件下载到lib/common 目录下
[app@localhost plugins]$ cd /usr/local/sonarqube/bin/linux-x86-64/
[app@localhost linux-x86-64]$ sh sonar.sh restart   #重启服务

在这里插入图片描述

备注:
①将下载好好的插件jar包移动到sonarqube安装家目录下的 extensions/pluginslib/common 目录下,重启sonarqube。
②在sonarqube 7.7 以上版本中将不在支持mysql的驱动,所以我这边安装的 sonarqube 7.7 版本。

3、web登录

http://192.168.0.147:9000/   #用户名和密码都是admin

二、配置令牌并开启token登录

1、生成token令牌
配置 --> 权限–> 用户 --> 更新令牌 --> 生成令牌,令牌名称任意写 --> 生成
在这里插入图片描述

2、开启token登录认证
配置 --> 通用配置–> 权限 --> 将"Force user authentication"开关打开,并保存。

三、下载客户端工具并测试

[root@localhost ~]$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip
[root@localhost ~]$ unzip sonar-scanner-cli-4.4.0.2170-linux.zip && mv sonar-scanner-cli-4.4.0.2170-linux /usr/local/
[root@localhost ~]$ ln -s /usr/local/sonar-scanner-cli-4.4.0.2170-linux /usr/local/sonar-scanner
[root@localhost ~]$ cd /usr/local/sonar-scanner/

[root@localhost sonar-scanner]$ vim conf/sonar-scanner.properties
sonar.host.url=http://192.168.0.147:9000               #服务器端地址
sonar.login=94078e65f4266c5b1394b93f5caf90f2664c317a   #登录服务器token
sonar.sourceEncoding=UTF-8                             #字符集

##克隆代码并测试
[app@localhost ~]$ git clone --depth 1 [email protected]:gateon/momwow.git
[app@localhost ~]$ cd momwow 


[app@localhost momwow]$ /usr/local/sonar-scanner/bin/sonar-scanner \
-Dsonar.host.url=http://192.168.0.147:9000 \
-Dsonar.projectName=momwow \
-Dsonar.projectKey=java \
-Dsonar.resource=. \
-Dsonar.login=94078e65f4266c5b1394b93f5caf90f2664c317a 

##简化版本,因在配置文件中指定了服务器端的url和登录token,所以可以省略
[app@localhost momwow]$ /usr/local/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectName=momwow \
-Dsonar.projectKey=java \
-Dsonar.resource=. 

备注:更多参数地址

四、sonar集成jenkins

1、jenkins集成sonar,下载sonarQube插件

2、进入系统管理 --> 系统设置 --> SonarQube servers,选择Add SonarQube,填写信息

name:自定义即可
ServerUrl:sonar服务地址
Server authentication token: 在sonar服务中生成的令牌token,也就是94078e65f4266c5b1394b93f5caf90f2664c317a

3、在jenkins中新建job,首先需要配置从git仓库中拉取代码,选择要分析的分支

4、设置执行的maven命令,如 选择root Pom文件,设置执行mvn命令:clean install -Dmaven.test.skip=true
5、接下来选择Additional Behaviours,新增post steps ,其他数值可以默认,Analysis properties设置如下的

sonar.projectKey={project-key}
sonar.projectName={project-name}
sonar.peojectVersion=1.0
sonar.language=java
sonar.sources=$WORKSPACE/
sonar.java.binaries=$WORKSPACE/{project-name}/target/

当然也可以选择login和pwd的方式
配置信息说明:

sonar.host.url     sonarqube的URL地址
sonar.login        sonar用户名
sonar.password     指定sonar用户的密码
sonar.projectName    在sonar上显示的项目名称
sonar.projectVersion    在sonar上显示的版本信息
sonar.projectKey    sonar的项目关键字
sonar.sources    包含pom.xml的maven项目相对目录
sonar.java.binaries  java编译后的文件目录

设置完成以后,可以进行构建,查看构建的日志记录信息没有异常即可。

猜你喜欢

转载自blog.csdn.net/m0_37886429/article/details/108199117