我有一个包含多个项目的Visual Studio / C#解决方案。有些项目链接到其他目录中的源代码(在多个项目中使用的共享代码)。
当运行Sonar时,它似乎运行良好(虽然我不确定它是否真的有效!),并且当在Sonar外部运行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 \ project的时候)
它不是一个真正的多模块项目(因为我不想分析所有的Shared.All目录 - 只有从我的项目链接的文件(本例中为Server))。
有谁知道如何处理这个问题?如果我忽略每个项目中的内容并对Shared.All文件夹进行分析,那么我将使用ReSharper失败,因为那里没有VS项目文件......
我无法更改代码的项目结构。在特殊文件夹中共享代码的设计可能不是最好的,但这是很久以前我们不得不忍受的设计。那么,我如何与Sonar合作呢?
答案 0 :(得分:1)
如果我正确理解您,您有一个共享文件夹,位于与您的项目相同级别的文件系统上:
如果您使用的是Visual Studio Bootstrapper插件,则始终在分析多模块项目:每个Visual Studio项目都成为SonarQube模块。为解决方案本身创建了一个主项目(没有源代码)。
SonarQube存在一个限制:模块的所有源都必须位于模块的文件夹中,例如,计算相对路径(等)才能正常工作。
您案例中的“共享”文件夹不属于任何项目,因此无法在SonarQube中导入。
您有几种选择:
我建议短期使用选项1,同时在Visual Studio Bootstrapper上等待此票证不再创建要实现的SonarQube模块:https://jira.codehaus.org/browse/SONARVS-59