Sonar Gerrit插件不报告结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sonar Gerrit插件不报告结果相关的知识,希望对你有一定的参考价值。
我们利用管道,在构建成功完成后,我们运行以下内容:
bat "mvn sonar:sonar -B -s ${buildSettings} -Dsonar.analysis.mode=preview -Dsonar.skipDesign=true -Dsonar.report.export.path=sonar-report.json"
sonarToGerrit(severity: 'Major', postScore: true, category: 'Code-Review', newIssuesOnly: true, issuesScore: '0', noIssuesScore: '0', changedLinesOnly: true)
下面的构建日志显示它发现了很多问题但是要评论的问题是0。
其他帖子表明它可能没有找到报告,但我认为不是这样,因为它发现了一些问题。任何管道配置建议将不胜感激。
我们使用的是Sonar Gerrit插件版本2.2.1,Gerrit Trigger 2.27.3和Jenkins Enterprise版本是2.60.3.1。
关于您的问题,最常见的情况与SonarQube检查整个项目的事实有关,无论在特定更改中进行了多少更改。创建新报告时,它会将结果与存储在其数据库中的结果进行比较(以前发现的问题是在预览以外的模式中找到的)。因此,声纳标记为之前未发现的所有问题(如果您根本没有将此信息存储在SonarQube中 - 所有问题都将标记为新问题)。但是,sonar-gerrit插件只能将问题发布到受其验证的更改影响的文件。因此,即使您将设置“newIssuesOnly”和“changedLinesOnly”设置为“false”,也将忽略不受更改影响的文件中的所有问题。
不久,检查您的声纳报告中标记为“isNew”=“true”的问题是否实际已更改(对于changedLinesOnly = true)或位于您尝试检查的提交中的已更改文件(对于changedLinesOnly = false)。
另一个可能的原因是项目配置设置。如果您的文件是子模块的一部分,则需要将子模块名称包含到项目基目录集中。或者您可能想要尝试“允许自动匹配”功能。该功能尝试自动将SonarQube模块与Gerrit名称匹配(自2.1起可用)。
与您的问题无关的管道代码建议:
目前,严重性(和其他枚举值)的设置识别区分大小写。实际上,插件会忽略您的“Major”设置,因为它无法识别它,并将其替换为默认的“INFO”值。
另外,我不明白你为什么设置“issuesScore”= 0和“noIssuesScore”= 0时将“postScore”设置为true。为简单起见,您可以设置postScore = false并跳过这些设置和“类别”。
此外,如果您使用2.0以上版本的插件,请注意API稍有变化,现在使用下一个结构:
sonarToGerrit (
reviewConfig: [
issueFilterConfig: [
severity: 'MAJOR',
newIssuesOnly: false,
changedLinesOnly: false
],
noIssuesTitleTemplate: 'Your text here',
someIssuesTitleTemplate: 'Your text here',
issueCommentTemplate: 'Your text here'
]
)
虽然您的代码也应该可以运行(插件确实支持以前的版本),但可能存在错误的可能性更大。
我也面临与Sonar-Gerrit jenkins插件相同的问题。从Jenkins插件站点下载它。使用Sonar-Gerrit插件2.2.1,并分析声纳扫描对jenkins工作区。
对于示例,仅更改了一个文件并将项目基目录提供给该文件的路径,并在问题模式下运行声纳分析。
Gerrit中没有加载日志问题
报告已加载并包含759个问题需要注释的问题:0评分计算中涉及的问题:0已发送评论
以上是关于Sonar Gerrit插件不报告结果的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Gerrit 报告值插件删除了 Code-review 的值
Hybris Jacoco Sonar 包括所有网络测试到结果报告