Sonar+ReSharper包含链接文件的项目

本文关键字:项目 文件 链接 包含 Sonar+ReSharper | 更新日期: 2023-09-27 18:31:32

我有一个包含多个项目的Visual Studio/C#解决方案。某些项目具有指向其他目录中的源代码的链接(在多个项目中使用的共享代码)。

当运行声纳

时,它似乎工作得很好(虽然我不确定它是否真的有效!),当在声纳之外运行ReSharper时,它也运行良好。但是,当从Sonar运行ReSharper时,我最终会得到很多17:44:37.607 INFO - 跳过第 6259 行的 ReSharper 问题,其文件"C:''GitRepos''myProject''Code''Shared.All''Core''StorageSqlCe.cs"不在 SonarQube 中。(这是我在分析 C:''GitRepos''myProject''Code''Server'' 项目的时候)

这不是一个真正的多模块项目(因为我不想分析所有的 Shared.All 目录 - 只分析从我的项目(在本例中为服务器)链接的文件)。

有谁知道如何处理这个问题?如果我忽略每个项目中的内容并分析共享.All文件夹,我将使用ReSharper失败,因为我那里没有VS项目文件...

我无法更改代码的项目结构。在特殊文件夹中共享代码的设计可能不是最好的,但这是很久以前做出的设计,我们必须接受。那么,我如何与声纳合作呢?

Sonar+ReSharper包含链接文件的项目

如果我正确理解您,您有一个共享文件夹,位于与您的项目处于同一级别的文件系统上:

  • 解决方案.sln
  • 项目1''
  • 项目2''
  • 共享''

如果您使用的是Visual Studio Bootstrapper插件,则始终在分析一个多模块项目:每个Visual Studio项目都成为SonarQube模块。为解决方案本身创建一个主项目(没有源)。

SonarQube有一个限制:模块的所有源代码都必须位于模块的文件夹中,例如,相对路径(等)的计算才能正常工作。

在您的情况下,"共享"文件夹不属于任何项目,因此无法在SonarQube中导入。

您有以下几种选择:

  1. 接受共享代码未在SonarQube中进行分析
  2. 不再依赖Visual Studio Bootstrapper插件,并将整个解决方案作为单个SonarQube项目进行分析。但是您随后会遇到其他限制(例如 https://jira.codehaus.org/browse/SONARFXCOP-36)

我建议您在短期内选择1,同时在Visual Studio Bootstrapper上等待此票证不再创建要实现的SonarQube模块:https://jira.codehaus.org/browse/SONARVS-59