首页 > 解决方案 > Sonarqube 不应用规则

问题描述

我将从一些背景开始:

  1. 我正在运行 Sonarqube、Jenkins 的容器化实例和带有 .NET sdk 的容器,用于构建/测试目的。
  2. 所有这些容器都以 Alpine Linux 作为基础操作系统
  3. 詹金斯版本:2.121.2
  4. Sonarqube 版本:6.7.4(内部版本 38452)
  5. .NET SDK 版本:2.1.302
  6. 我正在对我克隆的示例目录进行测试(一些小的编辑以确认 SonarQube 是否正常工作)目录:https ://github.com/Raisinpit/MSTest
  7. 我的詹金斯构建计划如下:
    • 使用 SDK SSH 到容器并告诉它克隆 repo
    • ssh 到带有 SDK 的容器和“dotnet publish”目录
    • 使用 SDK SSH 到容器并执行“dotnet test”
    • 我的声纳设置:SonarQube 设置
  8. 成功构建证明:成功构建证明
  9. SonarQube 结果:删除了轨道和语言标签的新图像

我希望有人知道为什么我没有得到任何检测,而 sonarqube 认为它完成了它的工作。

标签: .netdockerjenkinssonarqube

解决方案


您的项目主页屏幕截图省略了右上角的栏,它保存了每种语言的行数,这可能非常有用。

但是通过您的 Jenkins 设置屏幕截图,您正在使用非常长期弃用的sonar.language属性来限制对 C# 文件的分析,然后不执行“正确”的 C# 分析。这很可能是原因。

查看有关如何通过 Jenkins 分析 .NET 的文档:https ://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins#AnalyzingwithSonarQubeScannerforJenkins-AnalyzingwithSonarQubeScannerforMSBuild


推荐阅读