2016-12-30 127 views
4

我像这些安装...SonarQube MSBuild集成失败:SonarQube无法收集有关您的项目的所需信息

sonarqube-6.2 | sonar-scanner-2.8 | sonar-scanner-msbuild-2.2.0.24 | msbuild 14

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

批处理文件是...

MSBuild.SonarQube.Runner.exe开始/ K:%PROJECT_KEY%/ N:%PROJECT_NAME%/ V:%BUILD_VERSION%/d:sonar.verbose=true

MSBuild.exe “项目”/吨:建立/ v:米

MSBuild.SonarQube.Runner.exe结束

错误消息是...

SonarQube扫描器对的MSBuild 2.2 默认属性文件被发现在C:\ SONARQUBE \声纳的扫描仪的msbuild-2.2.0.24 \ SonarQube.Analysis.xml 加载分析选自C属性:\ SONARQUBE \声纳的扫描仪-msbuild-2.2.0.24 \ SonarQube.Analysis.xml 后处理已启动。 SonarQube扫描器对的MSBuild 2.2 18:50:20.591载入从C SonarQube分析配置:\ jenkins_slave_buildpc \工作空间\ amis3_client_sonar.sonarqube \ CONF \ SonarQubeAnalysisConfig.xml 18:50:20.592不TeamBuild 下运行18:50:20.593分析基本目录:C:\ jenkins_slave_buildpc \工作区\ amis3_client_sonar.sonarqube build目录: bin目录:C:\ jenkins_slave_buildpc \工作区\ amis3_client_sonar.sonarqube \ BIN Config目录:C:\ jenkins_slave_buildpc \工作区\ amis3_client_sonar.sonarqube \的conf 输出目录:C:\ jenkins_slave_buildpc \ workspace \ amis3_client_sonar.sonarqube \ out 配置文件:C:\ jenkins_slave_buildpc \ workspace \ amis3_client_sonar.sonarqube \ conf \ SonarQubeAnalysisConfig.xml 生成SonarQube项目属性文件到C:\ jenkins_slave_buildpc \ workspace \ amis3_client_sonar.sonarqube \ out \ sonar-project.properties SonarQube MSBuild集成失败:SonarQube无法收集有关您的项目的必需信息。

可能的原因:

  1. 该项目尚未建成 - 该项目必须建立在开始和结束之间

  2. 的MSBuild不受支持的版本已经被用来建立项目步骤。目前的MSBuild 12.0向上支持

  3. 的开始,建立或结束步骤尚未全部来自同一个文件夹

写入处理汇总到C推出:\ jenkins_slave_buildpc \工作区\ amis3_client_sonar.sonarqube \出\ ProjectInfo.log 生成声纳属性文件失败。无法完成SonarQube分析。 18:50:20.615创建汇总降价文件... 18:50:20.617后处理失败。退出代码:1

我为声纳执行了相同的批处理文件。但有些项目是可以的。有些项目失败.. 什么使这个错误信息?

+0

MsBuild的Scanner与msbuild紧密集成。如果您的构建严重定制,可能会发生我们找不到所需的所有构件。例如,您可能有一个没有输出的项目。这很可能会使声纳分析失败。尝试确定哪些项目类型导致问题。 (以前我们遇到过没有编译目标的WebPages(而不是WebSites))的问题。) – Tamas

+0

谢谢。我会检查每个项目的配置。 –

回答

2

当试图在teamcity中运行MSBuild.SonarQube.Runner end命令时,我收到了类似的错误。 开始步骤和MSBuild步骤来建立项目工作正常。

当我在teamcity中给出runner和MSbuild的完整路径时。它为我工作。

C:\SonarQube\sonar-scanner-msbuild-3.0.2.656\MSBuild.Sonarqube.runner.exe 
begin /k:"Sonar key here" /n:"Sonar project here" /v:%build.number% 
/d:sonar.log.level=DEBUG 

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" [path for .sln file 
here] /t:Rebuild 
/p:VisualStudioversion=14.0;Configuration=Release;Platform="Any CPU" 

C:\SonarQube\sonar-scanner-msbuild-3.0.2.656\MSBuild.Sonarqube.runner end 
0

另一件值得检查的事情 - 特别是如果你试图从构建服务器上运行SonarQube--它是否在本地系统配置文件中运行。从日志中,您可能会看到这样的:

Installed SonarQube.Integration.ImportBefore.targets to C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\MSBuild\15.0\Microsoft.Common.targets\ImportBefore 

我发现,这条道路是不存在的,即使SonarQube的扫描仪高兴地声称已经有安装了其目标。我的解决方案是创建一个构建代理帐户来执行构建任务。这将导致SonarQube将其目标安装到用户配置文件MSBuild文件夹。例如:

C:\Users\buildagent\AppData\Local\Microsoft\MSBuild\15.0\Microsoft.Common.targets\ImportBefore