SonarQube MSBuild与Jenkins的集成失败,在命令行上工作正常
我正在用sonarqube分析我的.NET项目,我想用我的jenkins构建服务器将其自动化 我使用了MSBuild 14.0.23107.0、sonarqube 6.7.1.35068、sonar-scanner-MSBuild-4.0.2.892、sonar-csharp-plugin-6.7.1.4347、Jenkins 2.89.3 我尝试了jenkins的“用于MSBuild的SonarQube扫描仪-开始分析”和“用于MSBuild的SonarQube扫描仪-结束分析”生成步骤,但它们失败,并显示以下错误消息: SonarQube MSBuild集成失败:SonarQube无法 收集有关项目的必要信息。可能的原因:SonarQube MSBuild与Jenkins的集成失败,在命令行上工作正常,jenkins,msbuild,sonarqube,sonarqube-msbuild-runner,Jenkins,Msbuild,Sonarqube,Sonarqube Msbuild Runner,我正在用sonarqube分析我的.NET项目,我想用我的jenkins构建服务器将其自动化 我使用了MSBuild 14.0.23107.0、sonarqube 6.7.1.35068、sonar-scanner-MSBuild-4.0.2.892、sonar-csharp-plugin-6.7.1.4347、Jenkins 2.89.3 我尝试了jenkins的“用于MSBuild的SonarQube扫描仪-开始分析”和“用于MSBuild的SonarQube扫描仪-结束分析”生成步骤,但它
SonarQube.Scanner.MSBuild.exe begin /k:"eGate" /v:"%SVN_REVISION%" /d:sonar.login="%SONAR_AUTH_TOKEN%"
MSBuild.exe /property:Configuration=AutoBuild /t:Rebuild
SonarQube.Scanner.MSBuild.exe end /d:sonar.login="%SONAR_AUTH_TOKEN%"
因为这是我能想到的最简单的例子。它仍然失败:
12:41:39 C:\Jenkins\workspace\eGate>SonarQube.Scanner.MSBuild.exe begin /k:"eGate" /v:"8503" /d:sonar.login="******"
12:41:39 SonarQube Scanner for MSBuild 4.0.2
12:41:39 Default properties file was found at C:\sonarqube\bin\SonarQube.Analysis.xml
12:41:39 Loading analysis properties from C:\sonarqube\bin\SonarQube.Analysis.xml
12:41:39 Pre-processing started.
12:41:39 Preparing working directories...
12:41:39 12:41:39.232 Updating build integration targets...
12:41:39 12:41:39.243 Fetching analysis configuration settings...
12:41:39 12:41:39.403 Provisioning analyzer assemblies for cs...
12:41:39 12:41:39.404 Installing required Roslyn analyzers...
12:41:39 12:41:39.44 Pre-processing succeeded.
12:41:39
12:41:39 C:\Jenkins\workspace\eGate>MSBuild.exe /property:Configuration=AutoBuild /t:Rebuild
12:41:39 Microsoft (R)-Buildmodul, Version 14.0.23107.0
剪断
有趣的是,当我打开命令行时,切换到jenkins工作区,然后手动执行命令,一切正常:
The SonarQube Scanner has finished
12:28:23.407 Creating a summary markdown file...
12:28:23.411 Analysis results: http://localhost:9000/dashboard/index/eGate
12:28:23.411 Post-processing succeeded.
有关于如何调试的提示吗?如果您需要,我可以提供其他日志和信息。我可以解决这个问题。我不是100%满意,但我可以通过使用完整的绝对路径调用SonarQube.Scanner.MSBuild.exe和MSBuild.exe来实现这一点:
"C:\sonarqube\bin\SonarQube.Scanner.MSBuild.exe" begin /k:"eGate" /v:"%SVN_REVISION /d:sonar.login="%SONAR_AUTH_TOKEN%"
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /property:Configuration=AutoBuild /t:Rebuild
"C:\sonarqube\bin\SonarQube.Scanner.MSBuild.exe" end /d:sonar.login="%SONAR_AUTH_TOKEN%"
但我不明白为什么这样做有效,但从%PATH%env调用它们却不行。这真的很奇怪…我也遇到了同样的问题。你解决了吗?我添加了我的解决方案作为答案,尽管我对它不是100%满意,因为我仍然不知道为什么我的相对路径不起作用。
"C:\sonarqube\bin\SonarQube.Scanner.MSBuild.exe" begin /k:"eGate" /v:"%SVN_REVISION /d:sonar.login="%SONAR_AUTH_TOKEN%"
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /property:Configuration=AutoBuild /t:Rebuild
"C:\sonarqube\bin\SonarQube.Scanner.MSBuild.exe" end /d:sonar.login="%SONAR_AUTH_TOKEN%"