我正在使用gitlab-ci管道,它将使用以下命令运行一个新的docker容器:
mvn --batch-mode verify sonar:sonar
-Dsonar.analysis.mode=preview
-Dsonar.gitlab.project_id=$CI_PROJECT_ID
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.only_issue_from_commit_file=true
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.host.url=xxx
-Dsonar.test.inclusions="/src/test/java/**/*.java"
-Dsonar.login=xxx
对于我的项目而言,它变得相当慢,几乎要运行20分钟。 我发现它将扫描所有文件而不是仅提交的文件。
我的配置有问题吗?
答案 0 :(得分:1)
在某些SonarQube以前的版本中,我们将预览模式更改为仅扫描更改的文件。但这有一些缺点,例如无法正确检测跨文件问题。
在SonarQube的最新版本中,不赞成使用预览模式,而希望进行拉取请求分析。但是,出于相同的原因(跨文件问题,覆盖范围措施,重复检测等),即使是此PR分析功能也正在扫描所有文件。
我们不再尝试进行部分分析,而是尝试优化整个分析时间。您的项目有多大?与常规构建(编译+测试)相比,SonarQube分析时间长吗?如果是,那么我建议您在SonarSource community forum上举报您的案件。