1:SonarQube介绍
1:SonarQube可以结合git做提交即检测也可以结合jenkins做拉取代码检测
2:SonarQube是基于java开发的
3:SonarQube依赖MySQl
4:SonarQube的小型示例需要4GB以上的内存
2:SonarQube服务端安装
- 1:安装MySQl
安装好之后
mysql -uroot -p123456789 -e "CREATE DATABASE sonar DEFAULT CHARACTER SET utf8;"
mysql -uroot -p123456789 -e "show databases;"
set global max_allowed_packet = 100*1024*1024;
- 2:安装sonarqube
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip
unzip sonarqube-7.2.zip /usr/local/
//建立软连接
ln -s /usr/local/sonarqube-7.2/ /usr/local/sonarqube
//添加sonar用户
useradd sonar
chown -R sonar.sonar /usr/local/sonarqube-7.2/
chown -R sonar.sonar /usr/local/sonarqube
//修改配置文件 把#号放开即可
vim /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username = root
sonar.jdbc.password = 123456789
sonar.jdbc.url = "xxx"
//启动 注意不能用root用户启动
su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
//访问
http://ip:端口
-
3 :安装好的sonarQube如下
-
4:登录的一些设置和token的生成
1 默认账户密码为:admin、admin,这里可以设置token方便代码脚本通过token直接来访问调用
2:如下 生成token
3:选择需要扫描的语言和系统环境,生成运行脚本
4:安装常用的sonarQube插件(sonarQube默认只安装了C java python php js,其中html css go等需要自己手动安装)
5:开启客户端扫描代码的token验证
综上 环境已经基本安装ok,下面我们开始实际的操作吧!
3:客户端sonar-scanner的安装
//另外一台客户端linux上安装sonar-scanner,安装成功后就可以在这台机器上链接上sonar服务端进行扫描了
//历史版本:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
//根据客户端系统版本选择
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744-linux.zip
//解压
unzip sonar-scanner-cli-4.0.0.1744-linux.zip
//从命名,方便输入路径
mv sonar-scanner-cli-4.0.0.1744-linux sonar-scanner
//方法一:
//修改sonar-scanner的配置文件
cd ./sonar-scanner/conf
vim sonar-scanner.properties
添加 sonar.login=3f4651c3ec3e018f7c9b906eb0cf33b8bfed7012
修改 sonar.host.url和sonar.sourceEncoding
//方法二:
//直接运行脚本 带Dsonar.host.url和Dsonar.login参数
3:sonarQube执行代码扫描
- 1:html
//sonar-scanner的全路径
/application/sonar-scanner/bin/sonar-scanner \
-Dsonar.projectKey=html \
-Dsonar.sources=.
如下 代表通过,可以上线发布
- 2:java
//需要扫描的项目的根路径下执行,首次执行会下载很多maven的插件
mvn sonar:sonar \
-Dsonar.host.url=http://119.3.38.4:3389 \
-Dsonar.login=3f4651c3ec3e018f7c9b906eb0cf33b8bfed7012
4:Jenkins与sonarQube执行代码扫描
4.1:环境配置
1:首先需要安装插件:SonarQube Scanner
2:配置sonarQube server(管理Jenkins–>Configure System)
3:配置sonarQube scanner( 管理Jenkins–>Global Tool Configuration)
4.2:freestyle执行sonarQube扫描非maven的项目
- 1:如下 构建添加如下配置
sonar.projectname=${JOB_NAME} //扫描项目名称
sonar.projectKey=html
sonar.sources=.
4.3:freestyle执行sonarQube扫描maven的项目
1:方法一:
sonar.projectname=${JOB_NAME}
sonar.projectKey=html
sonar.sources=.
sonar.java.binaries=target/sonar
2:方法二:
clean
verify
sonar:sonar
-Dsonar.host.url=http://ip:port
-Dsonar.login=7a1d78b24561fa04fbf24d8bd511ac87dfb36