【问题标题】:Migrating from sonar-runner to MSBuild Runner. Where did the sonar-project.properties file go?从 sonar-runner 迁移到 MSBuild Runner。 sonar-project.properties 文件去哪儿了?
【发布时间】:2015-10-27 08:08:21
【问题描述】:

场景: 我正在将我们当前的 VS 解决方案分析设置从使用 sonar-runner 迁移到使用 MSBuild runner。但是我遇到了一个相当重要的问题。

在旧设置中,我们使用sonar-project.properties 文件指定了我们的项目名称、密钥以及最重要的是一长串跳过的项目 (sonar.visualstudio.skippedProjectPattern)。

这是因为 [警告:丑陋的遗留不良编码实践警报] 我们有六个解决方案,可以构建数十个项目,所有项目都来自同一个 git 存储库。许多项目在多个解决方案中都很常见,我们不希望对它们进行多次分析。因此,每个解决方案都有一组它“拥有”的项目,并作为其中的一部分进行分析。因此,每个其他解决方案的 sonar-project.properies 文件指定这些项目将被忽略。

问题:在新的 MSBuild Runner 方法中,似乎没有 MS 解决方案级别(也读作 SonarQube 项目级别)配置文件或机制除了将命令行上的参数传递给 MSBuild 运行器的“开始”阶段。一个要么具有全局配置文件,要么具有 MSBuild *.*proj 文件(即 MS 项目级别 配置文件)。后者显然是不可能的,因为项目是否被排除在分析之外是基于正在分析的解决方案。

如前所述,可以想象我们可以在命令行中传递所有这些,但这是次优的。我们的构建是由尽可能通用的脚本完成的。在sonar-project.properities 文件中进行配置对保持这种状态有很大帮助,我们希望我们在这里遗漏了一些东西,让我们继续使用该文件或类似文件。我们是吗?

【问题讨论】:

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


    【解决方案1】:

    v1.0 MSBuild SonarQube Runner 支持/s: 命令行参数,允许您指定要使用的全局设置文件。设置文件可以包含您之前放入 sonar-project.properties 文件中的任何其他全局设置。

    如果您未指定全局设置文件,MSBuild Runner 将在与运行程序可执行文件相同的位置查找默认全局设置文件。

    有关更多信息,请参阅文档存储库:https://github.com/SonarSource/sonar-.net-documentation/blob/master/doc/appendix-2.md

    【讨论】:

    • 我知道 /s: 选项。但是,我对我的测试支持的文档的理解是,使用此选项会导致运行程序忽略默认的全局设置文件。我们有一个全局设置文件,其中包含所有解决方案通用的全局设置。我不想将这些设置复制到无数的“本地”设置文件中,这样我也可以将解决方案特定的设置放入该文件中。这不是 DRY 解决方案,也不是可维护的。
    • 您的理解是对的,MSBuild SonarQube Runner 设置文件在概念上更接近 sonar-runner.properties 文件而不是 sonar-project.properties 文件。
    【解决方案2】:

    目前在 MSBuild SonarQube Runner 版本 1.0 中没有与 sonar-project.properties 文件等效的文件。我已在项目积压工作中添加了一张新票,以考虑在即将发布的版本中添加此功能:http://jira.sonarsource.com/browse/SONARMSBRU-124

    【讨论】:

      【解决方案3】:

      现在可以通过 ItemGroups 在每个 .csproj 文件中添加属性,这样:

      <ItemGroup>
        <SonarQubeSetting Include="sonar.cpd.exclusions">
          <Value>Models/**/*.cs</Value>
        </SonarQubeSetting>
      </ItemGroup>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 2020-02-17
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 2014-09-12
        相关资源
        最近更新 更多