SonarQube sonar.issue.ignore.multicriteria 和 MSBuild

问题描述 投票:0回答:2

我有一个控制台项目,想要禁用其上的规则

Console logging should not be used
。 但似乎 MSBuild 没有在项目配置中添加这些排除项(在代理日志或 .sonarqube 日志中找到的任何内容)(
sonar.issue.ignore.multicriteria
)。

规则键模式:

csharpsquid:S2228

文件路径模式:

**/MyProject/**/*.*

我是否必须有一个配置文件,或者 MSbuild 应该检索项目的 Sonar 配置?

对于第一个项目,运行者尝试获取服务器规则:

2016-01-29T08:37:36.3162048Z 09:37:36.217 INFO  - -------------  Scan FisrtProject
2016-01-29T08:37:36.3172057Z 09:37:36.288 INFO  - Load server rules
2016-01-29T08:37:36.8185565Z 09:37:36.629 INFO  - Load server rules (done) | time=341ms

但其他人则不然。我想,由于跑步者已经通过了该规则和该文件一次,这些默认值不会自动删除,但我应该找到有关此的日志吗?

我尝试改变

sonar.global.exclusions
sonar.exclusions
,它们被跑步者发现了。

sonarqube sonarqube-msbuild-runner sonarqube5.3
2个回答
0
投票

sonar.exclusions / sonar.global.exclusions 不是您想要使用的。它们用于从分析中排除文件,而不是规则。 要排除专门针对项目的规则,您必须在 SonarQube 中定义质量配置文件并从配置文件中删除该规则,然后将该质量配置文件分配给您的项目。您可以将标准配置文件复制到新配置文件中并删除新配置文件中的规则,或者使用更灵活的质量配置文件继承机制(控制台应用程序的 QP 继承自默认 QP 减去 csharpsquid:S2228 规则) 然后照常运行分析。


0
投票

SonarQube.Issue.* 属性都不能通过命令行设置,因为它们是多值的。请在此处查找官方文档

You can have SonarQube ignore issues on certain components and against certain coding rules. Go to Administration > General Settings > Analysis Scope > Issues.
Note that the properties below can only be set through the web interface because they are multi-valued.

这些是 SonarQube 问题属性:

  • 忽略文件问题 - 键:sonar.issue.ignore.allfile
  • 忽略块中的问题 - 键:sonar.issue.ignore.block
  • 忽略多个标准的问题 - 键:sonar.issue.ignore.multicriteria
  • 限制编码规则的范围 - 键:sonar.issue.enforce.multicriteria

如果您想为所有 SonarQube 项目全局设置此属性,请转到 SonarQube 服务器的管理 -> 分析范围:

  1. 浏览到您的 Sonar 实例:http://servername:9000
  2. 以管理员身份登录
  3. 点击管理
  4. 选择左侧的分析选项卡
  5. 转到问题块并查看“忽略多个标准的问题”

如果您想将此排除应用于特定 SonarQube 项目,请选择该项目,然后浏览该项目 -> 管理 -> 分析范围。

© www.soinside.com 2019 - 2024. All rights reserved.