Linux下配置Jenkins+git+sonar+sonar-scanner

一、sonar和sonar-scanner的安裝:

1. 下載sonar,地址https://www.sonarqube.org/downloads/

2. 下載sonar-scanner,wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip

3. unzip上面的兩個壓縮包

4. sonarqube-6.7.6/bin/linux-x86-64目錄下啟動sonar,命令是sh sonar.sh console 默認訪問端口9000.啟動后訪問地址http://ip:9000/可以出現(xiàn)sonar的首頁,下載中文安裝包(我這是已經裝過了)


5. 為sonar配置數(shù)據(jù)庫地址,自行安裝mysql設置好庫名用戶名密碼,此處不再贅述,然后修改sonar解壓后文件中的配置,

conf下的sonar.properties文件,設置

sonar.jdbc.username=

sonar.jdbc.password=

sonar.jdbc.url=

sonar.web.javaOpts=(為了防止堆內存不夠用可以適當加大一點)

sonar.web.host=0.0.0.0

sonar.web.port=9000

6. 設置后進入bin目錄下重啟sonar,sh sonar.sh start

此時發(fā)現(xiàn)進程起不來,退出了,查看logs目錄下的sonar.log報錯 [o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143

看網上資料說是es報錯,查看es日志發(fā)現(xiàn)有一條 WARN es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。這里需要調整/etc/sysctl.conf文件,追加vm.max_map_count=262144然后執(zhí)行sysctl -p使生效

接下來重新啟動發(fā)現(xiàn)還是報錯起不來,并且sonar.log和es.log都沒有報錯信息,于是看了下web.log報錯如下Web server startup failed: Unsupported mysql version: 5.5. Minimal supported version is 5.6.,原來是我配置的mysql版本太低了,于是找了個5.6版本的mysql重新配置,至此可以成功啟動

7. sonar-scanner安裝只需要把sonar-scanner的bin目錄加到環(huán)境變量path中即可

二、 Jenkins下配置sonarQube和sonar-scanner

1. 下載和啟動Jenkins,非常簡單,下載完Jenkins的war包,然后java -jar jenkins.war即可啟動,默認端口8080

2. 進入Jenkins控制臺,下載sonar和git對應的插件,我這邊的是:


3. Jenkins的系統(tǒng)設置中添加SonarQube servers,配置路徑和認證。


其中Server authentication token是在sonar中生成的,生成方法:admin登陸

4. Jenkins的全局路徑中配置sonar-scanner的路徑如下:


5. 然后就可以愉快的在Jenkins中添加job并且對其進行靜態(tài)代碼分析了。我的job的主要配置:



6. 配置完成job后,立即構建,理論上就可以構建成功,并且Jenkins出現(xiàn)可以鏈接過去的分析結果像醬紫

鏈接過去大概是醬紫:


但怎么會這么順利呢,我這邊構建出現(xiàn)的問題匯總如下,下面對應Jenkins日志報的錯和解決方法

1.?Caused by: java.io.IOException: Cannot run program "git" (in directory "/home/devs/.jenkins/workspace/itsm-sonar"): error=2, 沒有那個文件或目錄

很明顯,這是因為裝Jenkins那臺機器沒有安裝git,裝一下即可

2.?Caused by: Not authorized. Please check the properties sonar.login and sonar.password.

這是因為在Jenkins的? analysis properties沒有配置sonar.login and sonar.password. 加上就好

3.?Caused by: You must define the following mandatory properties for 'itsm': sonar.sources

啊這個是最坑的,在網上搜都說analysis properties信息不全或者少什么properties文件來著。。結果各種嘗試都沒用,最后發(fā)現(xiàn)analysis properties是sonar.sources前面多了一個空格。。。想罵人有沒有。。

OK。。至此介紹完畢

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容