Sonarqube和Jenkins安装在Windows 64位上 - 这时jre是出乎意料的

时间:2017-04-26 10:26:17

标签: java jenkins sonarqube

我们已经在Jenkins构建服务器上安装了Jave JRE 8并成功安装了Sonarqube,它从我们的本地IP:9000运行良好。 Jenkins项目似乎也设置正确,并且安装了SonarQube插件。

使用SonarQube设置MS Build项目时,在过程结束时出错。 Sonarqube开始分析步骤工作正常,构建本身工作正常,但是当我们添加SonarQube结束分析时,它会出错:

10:17:19 \Jenkins\tools\hudson.plugins.sonar.MsBuildSQRunnerInstallation\Sonar_Scanner_for_MSBuild\sonar-scanner-3.0.1.733\bin..\jre was unexpected at this time. 
10:17:19 The SonarQube Scanner did not complete successfully

我们已经尝试相应地调整JAVA_HOME和PATH变量,但是如何修复却不知所措。

2 个答案:

答案 0 :(得分:0)

我刚刚在跑步者切换到MSBuild扫描程序时,在Jenkins服务器上遇到了这个问题。我通过让jenkins插件安装SonarQube Scanner for MSBuild 2.3.0.527而不是最新版本2.3.1.554来修复它。

希望这有帮助!

答案 1 :(得分:0)

3.0版本包含对sonar-scanner.bat的小改动,如果扫描仪的安装路径包括括号,则无法正确处理。安装扫描程序的用户(例如C:\Program Files (x86)\some\path)将收到问题中的错误消息。错误消息本身是非常无意义的,因为在DOS中解释变量的方式,%SONAR_SCANNER_HOME%的值括号使语法无效,因此DOS解释器完全混淆。

脚本中出现问题:

set use_embedded_jre=${use_embedded_jre}
if "%use_embedded_jre%" == "true" (
  set JAVA_HOME=%SONAR_SCANNER_HOME%\jre
)

修复就是这样改变:

set use_embedded_jre=${use_embedded_jre}
if "%use_embedded_jre%" == "true" (
  set "JAVA_HOME=%SONAR_SCANNER_HOME%\jre"
)

在整个变量赋值周围使用双引号非常重要, 不只是在=运算符的右侧。 否则,如果%SONAR_SCANNER_HOME%由于嵌入空格而已包含双引号,则脚本将无效。

这已在3.0.3中修复,可用于download