使用SonarQube扫描多语言项目

时间:2018-05-07 11:34:38

标签: javascript c# sonarqube sonarqube-scan

我试图将SonarQube(SonarCloud)实施到我们的开发管道中。我们正在使用TFS(内部部署),我们的项目只有一个存储库。在这个存储库中,我们有两个不同的应用程序,一个是.NET应用程序,另一个是javascript应用程序。

文件夹结构如下:

Cannot GET /

我们的构建定义(使用Pull Requests)步骤如下:

  1. 用于MSBuild的SonarQube扫描程序 - 开始分析(适用于.NET项目)
  2. Visual Studio Build(构建.NET项目解决方案)
  3. Visual Studio测试(.NET解决方案的测试)
  4. SonarQube扫描仪CLI(扫描JS项目)
  5. 用于MSBuild的SonarQuber扫描仪 - 结束分析
  6. 我在想第4步和第5步将分析我们的.NET和JS项目,最后,我会看到我们所有项目的完整报告。但是,当第4步完成后,它会自动上传JS项目的报告,当第5步完成它覆盖JS报告时,上传.NET项目的报告。

    最后,只有.NET项目的报告/警告/技术债务等。因为第5步覆盖了第4步的结果。

    如何配置这些步骤以便SOnarQube可以正确分析我们的JS和.NET项目?

1 个答案:

答案 0 :(得分:2)

在撰写本文时,您所看到的行为是"设计",即使它不是非常直观。换句话说,您无法将扫描仪链接到MSBuild和扫描仪CLI。

只有从当前分析的解决方案中的项目引用时,MSBuild扫描程序才能扫描JavaScript代码(以及所有其他语言)。例如,如果您的WebApplication项目包含JS(或TS,Java,COBOL等)文件,则将对其进行分析。

当在当前分析的解决方案中未引用非.NET语言文件时,最好创建一个单独的SonarQube项目来存储Scanner CLI的分析结果。

我们知道这个限制,我们计划在不久的将来修复它,但是现在我不能承诺特定的日期。