我们使用管道,在构建成功完成后,我们将运行以下命令:
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触发器2.27.3和Jenkins Enterprise版本2.60.3.1。
发布于 2018-02-13 15:50:02
关于您的问题,最常见的情况是,SonarQube检查整个项目,而不管在特定更改中所做的更改的数量。在创建新报表时,它将结果与存储到其数据库中的结果进行比较(与先前发现的问题进行比较,这些问题是在预览之外的模式中发现的)。因此,声纳将之前不知道的所有问题都标记为新问题(如果您根本不将此信息存储在SonarQube中,那么所有问题都将被标记为新问题)。但是声纳-gerrit插件只能将问题发布到受其正在验证的更改影响的文件中。因此,即使设置为"false“设置为"newIssuesOnly”和"changedLinesOnly",也将忽略不受更改影响的文件中的所有问题。
不久,检查声纳报告中标记为"isNew"="true“的问题实际上是否已更改(对于changedLinesOnly=true),或位于试图检查的提交中已更改的文件( changedLinesOnly = false)中。
另一个可能的原因是项目配置设置。如果您的文件是子模块的一部分,则需要将子模块名称包含到项目基目录集中。或者您可能想尝试一个功能“允许自动匹配”代替。该特性尝试将SonarQube模块与Gerrit名称自动匹配(自2.1起即可获得)。
与您的问题无关,有关管道代码的建议:
目前,对严重性(和其他枚举值)的设置识别是区分大小写的。事实上,这个插件忽略了你的“主要”设置,因为它无法识别它,并且用默认的"INFO“值替换它。
另外,我不明白为什么您将"postScore“设置为true,因为您设置了"issuesScore”=0和"noIssuesScore"=0。为了简单起见,您只需设置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'
]
)虽然您的代码也应该可以工作(插件确实支持以前的版本),但是有更大的可能会出现bug。
发布于 2018-02-28 08:13:46
我也面临着与插件相同的问题。下载它从Jenkins插件site.Using Sonar-Gerrit插件2.2.1,并分析声纳扫描对詹金斯工作空间。
对于一个示例,只更改了一个文件,并将项目基目录提供给该文件的路径,并以project模式运行声纳分析。
在Gerrit中没有用日志加载问题。
报告已加载并包含759个问题,待评论的问题:0分计算中涉及的问题:0已发送审查
https://stackoverflow.com/questions/48707380
复制相似问题