SonarQube MSBuild 集成失败:

Posted

技术标签:

【中文标题】SonarQube MSBuild 集成失败:【英文标题】:SonarQube MSBuild integration failed: 【发布时间】:2019-10-24 01:39:37 【问题描述】:

SonarQube 无法收集有关您的项目所需的信息。

我已经设置了 sonarqube,我已经创建了一个 .bat 文件来执行。 SonarQube.MSBuild 扫描程序运行。 MS Build 成功

* 项目根目录中的 BAT 文件 *

cd c:\tutorials\udemy\sonarqubeweb SonarScanner.MSBuild.exe 开始 /k:"CSharpTest" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="7e14e692c985484a9453aca9fb79920bc83214c7"

cd C:\Program Files (x86)\MSBuild\14.0\Bin MSBuild.exe C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln /t:重建

cd c:\tutorials\udemy\sonarqubeweb SonarScanner.MSBuild.exe 结束 /d:sonar.login="7e14e692c985484a9453aca9fb79920bc83214c7"

输出

C:\Tutorials\Udemy\SonarqubeWeb>SonarQubeWeb.bat

C:\Tutorials\Udemy\SonarqubeWeb>cd c:\tutorials\udemy\sonarqubeweb

C:\Tutorials\Udemy\SonarqubeWeb>SonarScanner.MSBuild.exe 开始 /k:"CSharpTest" /d:sonar.host.url="http://localhost:9000" /d:sonar.login=" 7e14e692c985484a9453aca9fb79920bc83214c7" 适用于 MSBuild 4.6.2 的 SonarScanner 使用 .NET Framework 版本的 Scanner for MSBuild 预处理开始。 正在准备工作目录... 03:48:16.862 更新构建集成目标... 03:48:16.942 获取分析配置设置... 03:48:17.463 为 cs 配置分析器程序集... 03:48:17.464 安装所需的 Roslyn 分析仪... 03:48:17.771 为 vbnet 提供分析器程序集... 03:48:17.772 安装所需的 Roslyn 分析仪... 03:48:17.811 预处理成功。

C:\Tutorials\Udemy\SonarqubeWeb>cd C:\Program Files (x86)\MSBuild\14.0\Bin

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln /t:Rebuild Microsoft (R) Build Engine 版本 14.0.25420.1 版权所有 (C) 微软公司。保留所有权利。

在此解决方案中一次构建一个项目。要启用并行构建,请添加“/m”开关。 构建于 2019 年 6 月 9 日凌晨 3:48:17 开始。 节点 1 上的项目“C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln”(重建目标)。 验证解决方案配置: 构建解决方案配置“调试|任何 CPU”。 “C:\Tutorials\Udemy\SonarqubeWeb\packages\MSBuild.Mic 的 BeforeTargets 属性中列出的目标“MvcBuildViews” rosoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\Web\Microsoft.Web.Publishing.targets (843,131)" 不存在 st 在项目中,将被忽略。 项目“C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln”(1)正在构建“C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWe b\SonarqubeWeb.csproj" (2) 在节点 1 上(重建目标)。

完成构建项目“C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb\SonarqubeWeb.csproj”(重建目标)。

完成构建项目“C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln”(重建目标)。

构建成功。 0 个警告 0 个错误

经过时间 00:00:04.85

cd c:\tutorials\udemy\sonarqubeweb

SonarScanner.MSBuild.exe 结束 /d:sonar.login="7e14e692c985484a9453aca9fb79920bc83214c7" 适用于 MSBuild 4.6.2 的 SonarScanner 使用 .NET Framework 版本的 Scanner for MSBuild 后处理开始。 SonarQube 无法收集有关您的项目的所需信息。 可能的原因: 1. 项目尚未构建 - 项目必须在开始和结束步骤之间构建 2. 使用了不受支持的 MSBuild 版本来构建项目。目前支持 MSBuild 14.0 和 15.0 3. begin、build 和 end 步骤未全部从同一个文件夹启动 4. 分析的项目都没有有效的 ProjectGuid 并且您没有使用解决方案 (.sln) 声纳属性文件的生成失败。无法完成 SonarQube 分析。 03:48:23.091 后处理失败。退出代码:1

【问题讨论】:

【参考方案1】:

请参阅上面引用的 SonarScanner.MSBuild end 步骤输出的第 (3) 点:

    开始、构建和结束步骤并未全部从同一个文件夹启动

您在调用 MSBuild 之前更改目录,然后在调用 end 步骤之前再次更改它。

在调用 MSBuild 之前不要更改目录。如果 MSBuild 不在 %Path% 中,则只需使用完全限定的路径调用它,即

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "C:\Tutorials\Udemy\SonarqubeWeb\SonarqubeWeb.sln" /t:Rebuild

【讨论】:

以上是关于SonarQube MSBuild 集成失败:的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild.SonarQube.Runner.Tool不分析.cs文件

如果SonarQube失败质量门,则VSTS构建失败

只有 msbuild 14 或 msbuild 15 支持 SonarQube 分析

SonarQube MSBuild 无法排除文件

Sonarqube 集成和 startSonar.bat 失败错误(0x2)

Sonarqube C# MsBuild 访问被拒绝