sonar-scanner-msbuild-4.10.0.19059-net46,在windows本机执行正常并能将报告传到服务器上。
ERROR: JAVA_HOME exists but does not point to a valid Java home folder. No "\bin\java.exe" file can be found there. 通过Jenkins的 windows powershell 工具中执行 dir env:命令 获取系统的变量 结果发现:JAVA_HOME取的是 linux系统(Jenkins中)的变量,
Jenkins中的sonar-scanner-msbuild 插件一定不能是自动安装方式,要自己手动指定自己在windows上的sonar-scanner-msbuild位置
修改这个文件中的JAVA_HOME sonar-scanner-msbuild-4.10.0.19059-net46\sonar-scanner-4.4.0.2170\bin\sonar-scanner.bat新增 JAVA_HOME=“windows上的java的根目录”
set use_embedded_jre=false if "%use_embedded_jre%" == "true" ( set "JAVA_HOME=%SONAR_SCANNER_HOME%\jre" ) echo "--------------新增开始设置JAVA_HOME----------------------" set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_212" echo "--------------新增结束设置JAVA_HOME----------------------" if not "%JAVA_HOME%" == "" goto foundJavaHome for %%i in (java.exe) do set JAVA_EXEC=%%~$PATH:i if not "%JAVA_EXEC%" == "" ( set JAVA_EXEC="%JAVA_EXEC%" goto OkJava )再次执行就可以正常执行了
原因Jenkins已经使用了sonarqube 的令牌了
只要注释掉SonarQube.Analysis.xml中的sonar.loginand sonar.password属性注释掉,就可以正常执行了,这两个属性是在Windows上测试时用了,注释掉,Jenkins执行sonar就正常了