SonarScanner和SoanrQube的使用

下载

官方文档下载地址:SonarScanner CLI
找自己需要的版本类型
安装啥的就略过了,已经有很完善的步骤了,我这里装的SonarQube是10版本的,SonarScanner是6.2.1的

SonarQube

1.进入部署好的SonarQube地址,以管理员身份登录后,在配置的ALM集成中,以gitlab为例,创建配置并填写正确的仓库地址和个人令牌若是没有找到需要的项目,选个权限高点的账号的令牌
个人令牌位置

2.在配置中的权限中(若是需要可以创建一个账户)创建个人令牌(用于身份认证)和全局项目令牌(省掉一个项目创建一个令牌的麻烦),并记到笔记本里,若是忘了只能回收掉再创建

在这里插入图片描述
3.在配置好一切后,内置的规则无法停用,需要在规则配置中复制一份内置的规则出来,然后为该规则配置自己的专属项目,然后才可以对自己复制出来的规则的进行停用与激活

4.对了,启动SonarQube的时候用root身份可能会无法启动,要切到sudo su - sonarUser这个用户上启动才行

SonarScanner

Windows

1.(记得配环境变量)到下载好的SonarScanner CLI文件中的conf文件中配置sonar-scanner.properties:

#服务器地址
sonar.host.url=http://192.168.000.000:9000/
#编码格式
sonar.sourceEncoding=UTF-8

#个人令牌
sonar.token=squ_c78dbd3c662239058bf0e4d072f*******

2.接着去要扫描的项目文件夹根目录中新建一个sonar-project.properties:

#项目在sonarqube的唯一标识
sonar.projectKey=arch_k****-parent_9d883d************39d00
#项目在sonarqube的名字
sonar.projectName=k******nt
#版本
sonar.projectVersion=1.0.0-SNAPSHOT
#配置指定扫描目录,以sonar-project.properties的目录为相对路径,多个目录用“”隔开
sonar.sources=.
#classes文件目录,不加会报错
sonar.java.binaries=.
#语言
sonar.language=java
#编码
sonar.sourceEncoding=UTF-8

# 排除项
sonar.exclusions=**/*.css,**/*.yaml,**/*.properties,**/*.html,**/*.js,**/*.xml,**/*Test.java,**/*DO.java


项目的唯一标识一般在项目信息中,排除项若是不生效,可以在SonarQube中的项目配置中的排除里再次设置一遍
在这里插入图片描述

3.Win+R,输入cmd,Ctrl+Shift+Enter,以管理员身份运行cmd,然后cd到项目文件夹下执行选中的代码即可(小技巧,若是cd不过去,可以"cd /d D:/")
在

4.回到项目新增项目,然后配置分析器,这里以本地为例,使用已有的令牌,即上面创建的全局项目令牌,然后选择其他,这里选择Windows系统查看soanrscanner的代码,copy到cmd运行窗口运行即可
在这里插入图片描述

Linux

1.同理先下载安装,(自行去搜索linux如何下载并解压包并安装)我这边是centos7的,然后同理要先配置环境变量(自己找教程,我也是找教程过来的,毕竟我也不知道你会装到哪,若是这篇水文能吸引更多小白再踢我补充完善吧),同理也要改conf文件中的sonar-scanner.properties,参照Windows

2.记得也安装好git,已经默认你能在linux上用ssh连到了远程仓库并用git拉取到了最新代码,然后同理在项目中创建sonar-project.properties,参照Windows
在这里插入图片描述
linux记得切对用户,以防一直找不对版本和环境变量,所以可以先去看一下mayue_csdn大佬写的文章

3.SonarQube同理切到linux版本的,这部分的代码块记得先copy到笔记本里然后把回车全替换成空格变成一行,或者还是报错的话就不加参数,只输入sonar-scanner也可以执行在这里插入图片描述
成功了真欣慰

坑:

1.在linux中,sonarscanner的执行文件有问题,明明linux系统是64位的,环境变量啥的都配置好了,就是报错找不到java_home,于是逐个原因排查,最后查到它的执行文件里,直接修改它的执行文件,把use_embedded_jre=true改为false,不让它找内置的jre

vim /opt/sonar-scanner-6.2.1.4610-linux-x64/bin/sonar-scanner

在这里插入图片描述
在这里插入图片描述

更多推荐