Skip to content

SonarQube踩坑记

连接阿里云RDS

sonar.jdbc.url=jdbc:mysql://address:3306/sonar?useUnicode=true&characterEncoding=utf8

sonar.projectKey命名

在gitlab-ci中给项目命名,一般是使用环境变量。但是不能使用:CI_COMMIT_REF_NAME ,因为使用该变量当项目分支中有/ # 特殊字符时,gitlab-ci的pipelines会失败,所以我们选择使用:CI_COMMIT_REF_SLUG(先将$CI_COMMIT_REF_NAME的值转换成小写,最大不能超过63个字节,然后把除了0-9和a-z的其他字符转换成-。在URLs和域名名称中使用)。

GitLab CI/CD Variables 中文文档

设置项目默认为私有

SonarQube默认项目为公有,这个时候不需要登录也可以查看项目的漏洞,需要登录系统后修改。

sonarqube-4

SonarQube安装FindBugs插件后使用错误

sonar-scanner -Dsonar.host.url=http://10.10.10.12:9000 -Dsonar.login=token -Dsonar.projectKey=java-test -Dsonar.java.binaries=$PWD

报错信息

ERROR: Error during SonarQube Scanner execution
ERROR: Can not execute Findbugs
ERROR: Caused by: One (sub)project contains Java source files that are not compiled (/home/gitlab-runner/builds/G5ijgmip/0/root/java).
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

这是因为findbugs检查的是classes文件,所以必须先对项目执行

mvn compile # 生成classes文件

不允许直接从数据库删除规则

报错如下:

ERROR: Unable to load component class org.sonar.scanner.report.MetadataPublisher
ERROR: Caused by: Unable to load component class org.sonar.scanner.rule.QualityProfiles

持续更新