使用 SonarQube Scanner for MSBuild 控制模块名称

Posted

技术标签:

【中文标题】使用 SonarQube Scanner for MSBuild 控制模块名称【英文标题】:Control module name with SonarQube Scanner for MSBuild 【发布时间】:2017-01-13 13:00:18 【问题描述】:

我尝试通过将以下 xml 片段添加到我的 csproj 文件来更改 C# 项目的模块名称:

<ItemGroup> 
    <SonarQubeSetting Include="sonar.projectName">
        <Value>Core.XY</Value>
    </SonarQubeSetting>
</ItemGroup>

这符合我的预期(SonarQube 中的模块名称已相应设置)。

问题:这是受支持的还是只是偶然的?如果我不得不担心它会随着下一次升级而改变,我真的不想使用这种行为。

生成的 sonar-project.properties 文件包含以下条目:

B6CCB06F-640A-428E-8A4E-4BBBAD881400.sonar.projectName=XY
...
B6CCB06F-640A-428E-8A4E-4BBBAD881400.sonar.projectName=Core.XY

这可能意味着我的配置或多或少是偶然的。


更新: 下面解释为什么我要更改某些项目的模块名称: 我有几个项目解决方案,例如

Core.sln
- Lib.csproj
- Tools.csproj
Service.sln
- Lib.csproj
- ...

在这种情况下,除非我有办法覆盖模块名称,否则我最终会在 SonarQube 中使用两个“Lib”模块。我当然可以重命名项目,但我更愿意简单地告诉 SonarQube 使用哪个模块名称。

如果 Sonar Scanner 使用程序集名称而不是项目名称,我也会非常高兴。

【问题讨论】:

事实上,Stefan,我们不能说这是故意的,所以我更愿意理解为什么默认模块名称不符合您的需要。谢谢 谢谢。我更新了我的问题... 【参考方案1】:

我相信,您可以使用此设置。 "SonarQubeSetting" 和 "sonar.projectName" 将正确设置项目名称。

请参阅 link 和 link 了解更多信息。

【讨论】:

是的,它确实有效,但不清楚这是否适用于“projectName”属性。 MSBuild Scanner 自动设置此属性,因此该属性设置了两次,幸运的是我的属性被使用....

以上是关于使用 SonarQube Scanner for MSBuild 控制模块名称的主要内容,如果未能解决你的问题,请参考以下文章

CentOS6.8配置SonarQube Scanner配合SonarQube使用

白盒测试之静态代码扫描:SonarQube+Scanner环境搭建及使用

白盒测试之静态代码扫描:SonarQube+Scanner环境搭建及使用

sonarqube+sonar-scanner-engine扫描引擎主要执行步骤

如何在 gitlab-ci.yml 中使用带有 SonarQube.Scanner.MSBuild.exe 的 Gitlab 变量

mac 下sonarqube和sonar scanner的配置和使用