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和域名名称中使用)。
设置项目默认为私有
SonarQube默认项目为公有,这个时候不需要登录也可以查看项目的漏洞,需要登录系统后修改。
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
持续更新