記錄一下自己在集成sonarqube到j(luò)enkins中踩到的坑姚建,還是怪自己粗心闯睹,記錄一下避免以后再次出現(xiàn)同樣的問(wèn)題:
1.注意版本匹配的問(wèn)題巷挥,開(kāi)始在配置sonarqube的時(shí)候烹卒,出現(xiàn)過(guò)mysqldb死活連接不上的問(wèn)題章咧,最后發(fā)現(xiàn)是mysql的安裝版本不對(duì)倦西,因此小伙伴們盡量避免采用yum自動(dòng)化安裝的方式,因?yàn)檫@樣存在一定的不可控性赁严,最后采用yum localinstall的方法來(lái)安裝扰柠。
目前我安裝的各種服務(wù)版本為:
sonarqube7.1+jdk1.8+mysql5.7+sonar-scanner3.0
2.sonar-runner和sonnar-scanner是一個(gè)東西粉铐,舊版叫runner,現(xiàn)在新版叫scanner耻矮,這倆裝一個(gè)就行了秦躯,我蠢死了一開(kāi)始兩個(gè)都裝了,導(dǎo)致環(huán)境變量重復(fù)了裆装。
3.如果在jenkins中不容易定位集成故障的位置踱承,可以先嘗試在sonarqube服務(wù)器端用命令行來(lái)執(zhí)行一下掃描任務(wù),看能否掃描成功哨免,排查問(wèn)題是處在sonar安裝上茎活,還是jenkins的集成配置上:
使用-Dproject.settings指定配置文件
/usr/local/sonar-scanner/bin/sonar-scanner -Dproject.settings=/usr/local/sonar-scanner/conf/sonar-scanner.test
4.本人在這個(gè)獲取不到版本號(hào)、Status returned by url [http://xx.xx.xx.xx:9000/batch/index] is not valid的問(wèn)題上卡了4天琢唾,最后發(fā)現(xiàn)是自己在jenkins上配置sonarqube server的URL配置不對(duì)载荔,蠢死了。
最開(kāi)始跟著博客無(wú)腦填采桃,SonarQube servers中填了服務(wù)器ip懒熙,報(bào)錯(cuò)如下:
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQubeat org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:84)at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:71)at java.security.AccessController.doPrivileged(Native Method)at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:71)at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:67)at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:218)at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:156)at org.sonarsource.scanner.cli.Main.execute(Main.java:74)at org.sonarsource.scanner.cli.Main.main(Main.java:61)Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from serverat org.sonarsource.scanner.api.internal.Jars.getBootstrapIndex(Jars.java:100)at org.sonarsource.scanner.api.internal.Jars.getScannerEngineFiles(Jars.java:76)at org.sonarsource.scanner.api.internal.Jars.download(Jars.java:70)at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:39)at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:75)... 8 moreCaused by: java.lang.IllegalStateException: Status returned by url [http://xx.xx.xx.xx:9000/batch/index] is not valid: [404]at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:115)at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:98)at org.sonarsource.scanner.api.internal.Jars.getBootstrapIndex(Jars.java:96)... 12 moreERROR: SonarQube scanner exited with non-zero code: 1
應(yīng)改為xx.xx.xx.xx:9000/sonar,改完之后就集成運(yùn)行成功了。
url的具體配置要與sonar-scanner中保持一致普办,注意不要忘記context中的后綴工扎。
各位小伙伴加油~