2017-04-26 49 views
0

我們已經在我們的Jenkins構建服務器上安裝了Jave JRE 8,併成功安裝了Sonarqube,並且從我們的本地IP:9000運行良好。 Jenkins項目似乎也已正確設置,並安裝了SonarQube插件。Sonarqube和Jenkins安裝在windows 64位 - 此時jre出乎意料

使用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變量,但在如何修復方面卻處於虧損狀態。

+1

實際上,它看起來更像是shell解釋器在解析文件時出現問題,就像'sonar-scanner-3.0.1.733 \ bin \ sonar-scanner.bat'中第23行存在語法錯誤一樣。來自錯誤日誌的更多上下文可能會有所幫助。從Jenkins的shell中執行這個腳本也是很好的做法 – janos

+0

我創建了一張票來跟蹤這個問題:https://jira.sonarsource.com/browse/SQSCANNER-41 – janos

+0

你可以通過編輯來嘗試這個解決方法嗎? 'sonar-scanner.bat'像這樣評論:https://github.com/SonarSource/sonar-scanner-cli/pull/31#issuecomment-300739312 – janos

回答

0

我剛剛在我們的Jenkins服務器上遇到了這個問題,從運行器切換到MSBuild的掃描儀。我通過讓jenkins插件爲MSBuild 2.3.0.527安裝SonarQube掃描儀而不是最新版本2.3.1.554來修復它。

希望這會有所幫助!

+0

完全正確,這是最新版本中的一個錯誤,爲我節省了一大堆我們正在經歷的惡化!轉到Jenkins> Manage Jenkins>全局工具配置。在MSBuild的Sonarqube中,選擇第二個最新版本並保存。 –

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