简述:
sonarqube对代码检测一般两种方式,一种直接在本地开发时代码提交之前进行检测,一种是代码提交到代码管理仓库后,在代码部署之前进行检测,本文将对两种方式做一个简单的操作记录和描述。
1.代码提交前进行代码检测
实现逻辑:因为maven支持sonarqube检测,所以可以在maven的配置文件里配置上sonarqube的检测信息后,可以在代码提交前先进行检测分析。
(1)先获取到sonarqube的登录信息
账号:admin
密码:admin
登录地址:http://192.168.10.112:9000
(2)找到maven的配置文件setting.xml,E:\Program Files\maven\apache-maven-3.9.2\conf\setting.xml,用记事本或其他能编辑的工具打开后在标签中添加内容如下:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.login>admin</sonar.login>
<sonar.password>admin</sonar.password>
<sonar.host.url>http://192.168.10.112:9000</sonar.host.url>
</properties>
</profile>
(3)登录sonarqube
当前登录可以看到无任何检测记录
(4)打开代码开发工具
选择终端,输入mvn -v查看mvn版本,再次输入mvn sonar:sonar 进行代码检测
(5)检测完毕后再次登录sonarqube查看检测结果
2.代码部署前检测
实现逻辑:其实就是将sonarqube整合到jenkins发布流程中,当代码发布之前jenkins服务将从代码仓库拉取到的源代码存到jenkins服务器,并打包,sonarqube在打包后对源代码和打包后的代码进行检测。
(1)sonarqube整合到jenkins,首先需要获取sonar-scanner-cli-4.6.1.2450-linux.zip包,获取地址链接:https://pan.baidu.com/s/1ixiRTb5nMTsHkKlARUWgmQ
提取码:8888
(2)通过传输工具将sonar-scanner-cli-4.6.1.2450-linux.zip包传输到装了jenkins的数据卷中并解压改名为sonar-scanner
解压
tar -zxvf sonar-scanner-cli-4.6.1.2450-linux.zip
改名
mv sonar-scanner-cli-4.6.1.2450-linux.zip sonar-scanner
(3)进入sonar-scanner找到文件 sonar-scanner.properties修改地址,并将编码字符集注释去掉后保存。
vim sonar-scanner.properties
#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.10.111:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
(4)进入jenkins拉取的代码目录进行代码检测测试
cd /var/lib/jenkins/workspace/pipeline
执行如下命令进行检测
[root@node2 mytest]# /var/lib/jenkins/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=linux-test -Dsonar.login=admin -Dsonar.password=xlgw123456! -Dsonar.projectKey=linux-test -Dsonar.java.binaries=./target/classes -X
参数如果有错误或不全,执行时会给提示,按照提示进行添加修改即可
主要参数:
-Dsonar.sources=./
-Dsonar.projectname=pip-test
-Dsonar.login=admin
-Dsonar.password=xlgw123456!
-Dsonar.projectKey=pip-test
-Dsonar.java.binaries=./target/classes
-X
执行成功后检测生成记录分析可登陆sonarqube进行查看
3.将代码检查命令整合到jenkins
(1)登录jenkins系统,下载相关插件
(2)系统配置,配置是注意密码可以用账号和密码,也可以使用token值进行登录的配置。
先登录sonarqube获取token
aab1d4e413b285a86c17e704ff940b9e129bf6f4
切回jenkins配置界面配置
(3)全局配置
(4)任务配置
找到一个任务进行相关的代码检测配置
(5)构建
(6)切换到sonarqube查看检测结果