下载镜像
docker pull sonarqube:8.6-community |
启动镜像
mkdir -p /data/sonarqube/data |
登录SonarQube
默认账号密码 admin,admin
修改默认密码
安装中文插件
点击restart等待重启即可
项目检测
创建项目
创建令牌
分析项目
复制命令在代码目录下执行
看到Buiild Success代表代码检测完毕
可看到项目对应的bugs和漏洞
常用插件:
- Chinese Pack – 中文语言包
- Checkstyle – Java 代码规范检查
- Crowd – Crowd 插件,实现统一登录
- JaCoCo – Java 代码覆盖率
- PMD – Java 静态代码扫描
- ShellCheck Analyzer – Shell 代码规范检查
- SonarCSS、SonarHTML、SonarJS等 – Sonar 针对不同编程语言代码分析
自动构建
生成jenkins专属令牌
jenkins关联SonarQube
安装插件
添加凭据 Secret对应创建的令牌
在系统配置中配置插件
在全局工具配置中配置
可使用自动安装或包,本文使用指定本地包
项目结构,该项目需要进入ymall目录进行打包
增加构建选项Execute SonarQube Scanner
构建控制台输出
查看SonarQube,新代码
代表更新的代码漏洞是否新增,全部代码为老代码
问题:
启动SonarQube时MySQL报错
Exception in thread "main" org.sonar.process.MessageException: Unsupported JDBC driver provider: mysql |
原因是SonarQube 7.9以上版本已不再支持mysql,启动语句需要更改
以前版本的启动命令
docker run -d --restart=always --name sonarqube -p 9000:9000 -p 9092:9092 -e "SONARQUBE_JDBC_USERNAME=sonar" -e "SONARQUBE_JDBC_PASSWORD=sonar" -e "SONARQUBE_JDBC_URL=jdbc:mysql://192.168.50.57:3306/sonar?useUnicode=true&characterEncoding=utf8&useSSL=false" -v /data/sonarqube/conf:/opt/sonarqube/conf -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions -v /data/sonarqube/logs:/opt/sonarqube/logs sonarqube:7.5-community |
现在版本的启动命令
docker run -d --name sonarqube --restart=always -p 9000:9000 -p 9092:9092 -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions -v /data/sonarqube/logs:/opt/sonarqube/logs sonarqube:8.6.1-community |
jenkins构建时报错
Cannot run program "/opt/sonar-scanner-cli/bin/sonar-scanner" (in directory /root/.jenkins/workspace/ymall") error=13, Permission denied |
授权sonar-scanner
chmod -R 777 sonar-scanner-cli/ |