用于Jenkins的SonarQube扫描仪 - SonarQube MSBuild集成失败:SonarQube无法收集有关您的项目的所需信息

时间:2018-02-08 08:33:28

标签: jenkins msbuild sonarqube jenkins-plugins sonar-runner

安装信息是......
sonarqube-6.7.1 | sonar-scanner-3.0.3.778 |声纳扫描仪的MSBuild-4.0.2.892 | msbuild 14 | Java SE开发工具包8 | .NET Framework 4.6.2

我制作了windows批处理文件来构建和扫描(声纳)。但有些项目还可以。但有些项目失败了。 批处理文件是......

  

第1步。用于MSBuild的SonarQube扫描仪 - 开始分析

     

第2步。调用" C:\ Program Files   (86)\詹金斯\工作空间\ CSS_SQ \树干\生成\的build.bat"

我们的Build.bat是自定义的,我试过只使用Build.bat而不包括SonarQube,它运行正常。

  

第3步。用于MSBuild的SonarQube扫描仪 - 结束分析

错误消息是......

C:\ Program Files(x86)\ Jenkins \ workspace \ CSS_SQ>退出0 [CSS_SQ] $" C:\ Program Files(x86)\ Jenkins \ tools \ hudson.plugins.sonar.MsBuildSQRunnerInstallation \ SonarQube_Scanner_for_MSBuild \ MSBuild.SonarQube.Runner.exe"结束/d:sonar.login=****** ********
用于MSBuild 4.0.2的SonarQube扫描仪 默认属性文件位于C:\ Program Files(x86)\ Jenkins \ tools \ hudson.plugins.sonar.MsBuildSQRunnerInstallation \ SonarQube_Scanner_for_MSBuild \ SonarQube.Analysis.xml
从C:\ Program Files(x86)\ Jenkins \ tools \ hudson.plugins.sonar.MsBuildSQRunnerInstallation \ SonarQube_Scanner_for_MSBuild \ SonarQube.Analysis.xml中加载分析属性 后处理开始了。

  

SonarQube MSBuild集成失败:SonarQube无法进行   收集有关您项目的必要信息。可能的原因:
    1.项目尚未建成 - 项目必须建立在开始和结束步骤之间     2.已使用不受支持的MSBuild版本来构建项目。目前支持MSBuild 14.0以上     3.开始,构建或结束步骤并非都是从同一个文件夹中启动的

生成声纳属性文件失败。无法完成SonarQube分析 14:36:16.988创建摘要降价文件...
14:36:16.989后处理失败。退出代码:1
错误:为MSBuild执行SonarQube扫描程序失败(退出代码1)
完成:失败

关于可能的原因,我已经检查了1和2,它是正确的,但我不确定3.我猜测.sonarqube文件应该与.sln文件在同一个文件夹中,然后当我设置了我需要在其他参数列中设置路径的批处理文件。但是我无法找到任何线索来设置它。是什么使这个错误消息?我该怎么办?

1 个答案:

答案 0 :(得分:3)

第三种选择意味着"开始"和"结束"必须从同一文件夹运行命令,例如运行命令时当前文件夹应该相同(如果在扫描程序命令打印路径应该相同之前执行cd)。

修改 这个特殊问题似乎是由于构建正在执行旧版本的MSBuild而引起的。请确保在分析版本中运行MSBuild 14或15。

较早的建议(仍然普遍有效)

我们刚刚调查了similar problem,这是由用户对Slave Agent服务进行身份验证引起的。要检查您的浏览器是否相同,请使用begin运行扫描仪的/d:sonar.verbose=true步骤,然后在输出中看到如下所示的行:

12:34:56.479  Installed SonarQube.Integration.ImportBefore.targets to C:\...
12:34:56.482  Installed SonarQube.Integration.ImportBefore.targets to C:\...

如果末尾的路径是C:\Windows的子文件夹,那么您需要使用域用户(而不是本地系统)更改Jenkins从属代理的Windows服务用户:

enter image description here