描述:
在jenkins 中使用SonarQube Plugin 進行代碼掃描時報錯,錯誤信息如下

SonarQube Scanner executable was not found for sonar
Build step 'Execute SonarQube Scanner' marked build as failure

軟件版本:
系統: linux
jenkins : 2.32.3
SonarQube Plugin : 2.4
java : 1.7 / 1.8
SonarQube Scanner : 4.0.0.1744

jenkins 配置:
Global Tool Configuration 部分的SonarQube Scanner 配置如圖

jenkins sonar plugin_第1张图片

目錄/opt/sonar-scanner-4.0.0.1744-linux 在jenkins 主機存在,且sonar scaner的可執行文件爲sonar-scanner

回到報錯信息

SonarQube Scanner executable was not found for sonar
Build step 'Execute SonarQube Scanner' marked build as failure

這裏顯示的已經很明確,sonar 可執行文件不存在
可sonar-scanner 可執行文件就在那裏沒有錯啊,權限也沒有問題

關於jenkins 構建日志的輸出,沒有任何多餘信息可查……
到這裏有個思路,就是查jenkins 執行sonar 插件時的日志信息,看jenkins是否找到了正確的目錄以及可執行文件。
找了半天,在jenkins 的System Log 沒看到半點日志信息,想着創建一個只記錄插件執行的日志,按照搜索到的方法創建了新日志,依然沒有任何記錄……
到此,此問題無果……

隔天同事說另一臺機器上的jenkins 是可以正常運行sonar 的,突發奇想,到那臺主機上去對比了sonar scaner目錄下的文件,發現比報錯的機器上多了一個sonar-runner 的可執行文件,這時在報錯主機上將sonar-scanner 復制爲sonar-runner 進行驗證,確認了確實是jenkins 找可執行文件時沒找到,因爲jenkins 找的執行文件名是sonar-runner ……

至此問題解決
但這裏仍有兩個問題
一個是插件日志輸出的問題
另一個是,sonar 插件代碼或文檔,能夠確認使用的可執行文件名稱是什麼