【问题标题】:SonarQube Scanner for Jenkins -The SonarQube MSBuild integration failed: SonarQube was unable to collect the required information about your projectsJenkins 的 SonarQube 扫描仪 -SonarQube MSBuild 集成失败:SonarQube 无法收集有关您的项目所需的信息
【发布时间】:2018-07-18 18:06:57
【问题描述】:

安装信息是...
声纳-6.7.1 |声纳扫描仪 3.0.3.778 |声纳扫描仪-msbuild-4.0.2.892|构建 14 | Java SE 开发工具包 8 | .NET 框架 4.6.2

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

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

第 2 步。调用“C:\Program 文件 (x86)\Jenkins\workspace\CSS_SQ\trunk\Build\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" end /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. begin、build 或 end 步骤并未全部从同一个文件夹启动

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

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

【问题讨论】:

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


    【解决方案1】:

    第三个选项意味着“开始”和“结束”命令必须从同一个文件夹运行,例如运行命令时当前文件夹应该相同(如果您在扫描仪命令之前执行cd,则打印的路径应该相同)。

    编辑: 这个特殊问题似乎是因为构建正在执行旧版本的 MSBuild。请确保您在分析构建中运行 MSBuild 14 或 15。

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

    我们刚刚调查了similar problem,这是由对从代理服务进行身份验证的用户引起的。要检查您的是否相同,请使用/d:sonar.verbose=true 运行扫描仪的begin 步骤,在输出中您应该会看到如下行:

    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 服务用户更改为域用户(而不是本地系统):

    【讨论】:

    • 你的意思是改变Jenkins的用户吗?
    • 需要更改Jenkins从代理windows服务认证的用户。默认是本地系统,你需要把它改成域用户(无论如何这是推荐的方式)。
    • 我尝试按照 [issues.jenkins-ci.org/browse/JENKINS-3958] 步骤更改 jenkins 用户,但没有成功。
    • 它从 C:\Windows\system32\... 更改为 C:\Users\Administrator\... 我得到了同样的错误@Valeri - SonarSource
    • 请用/d:sonar.verbose=true 执行begin 步骤,用/v:diag 执行msbuild.exe 并将begin、msbuild 和end 步骤的输出发送给valeri dot hristov atsonarsourcedotcom。如果您将在构建过程中在您的解决方案的根目录中创建的压缩 .sonarqube 文件夹也发送给我,那也会有很大帮助。
    猜你喜欢
    • 2017-05-14
    • 2022-10-16
    • 2017-08-17
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2017-02-20
    • 2017-04-27
    相关资源
    最近更新 更多