在单个管道中进行多次扫描所需的步骤

Steps required to do multiple scans in a single pipeline

任何人都可以帮助我了解在单个管道中执行多个声纳扫描的必要条件吗?我看过sonarcloud不支持将多个项目扫描成一个项目,所以我把它们分成不同的sonarcloud项目。

我在托管构建代理上使用来自市场的 SonarCloud 扫描仪扩展。

我有一个相当大的 .net ASP.NET MVC 遗留框架应用程序,它还在 Scripts 文件夹中包含一个 reactjs 应用程序。我不想在 msbuild 扫描中包含 reactjs 文件,因为它在不断变化,并且开发人员使用 vscode 而不是 visual studio。让 csproj 保持最新状态将是一场噩梦。

所以我想使用独立扫描仪单独扫描 reactjs 文件夹,并使用带有 .net 应用程序的 msbuild 扫描仪。

扫描仪适用于 .net 应用程序,但我无法从独立扫描仪获得任何扫描输出。它只显示一个空结果。

我有以下任务...

准备分析(单独的 sonarcloud 项目) npm 安装 npm 构建 运行分析

准备分析(针对 .net)(单独的 sonarcloud 项目) nuget恢复 visual studio 构建任务 运行分析

发布构建门 上传工件

我已经设置了 .net 项目的 sonar.exclusions(在 sonarcloud 管理设置中,而不是在我的 scm 中的文件中)以排除 reactjs 文件夹(Scripts/react/**/ *), .net 项目的扫描似乎有效。

我已将 javascript 扫描器任务的 sonar.sources 设置为 reactjs 文件夹

然而,javascript 扫描为空。

我很茫然...

我 运行 是不是在同一管道中进行了两次扫描?我是否也需要 运行 JS 扫描后的构建门?第二次扫描会覆盖第一次吗? 运行 Analysis 是否实际发布了结果或者是 Publish 构建门?

所以问题是我在我的独立扫描仪中使用包含参数来仅扫描子文件夹。问题是我的假设是 include 根植于源文件夹,但实际上它植根于项目根文件夹(可以配置)。

因此将路径更改为从根开始的绝对路径解决了这些问题。