SonarQube sonar.issue.ignore.multicriteria和MSBuild

时间:2016-02-01 09:21:48

标签: sonarqube sonarqube-msbuild-runner sonarqube5.3

我有一个Console项目,想要禁用它上面的规则Console logging should not be used。 但似乎MSBuild没有在项目配置(sonar.issue.ignore.multicriteria)中添加这些排除项(在Agent日志中找到任何内容,或.sonarqube日志)。

规则键模式: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.exclusionssonar.exclusions,他们是由跑步者找到的。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

SonarQube.Issue。*属性都不能由命令行设置,因为它们是多值的。请在此处找到官方documentation

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. 转到问题块并查看“忽略多个标准上的问题”
  6. enter image description here

    如果要对特定的SonarQube项目应用此排除项,请选择项目,然后浏览项目 - >管理 - >分析范围。