SonarQube 靜態代碼檢查的安裝

緣起

時隔多年,又開始搭建Git Server 和 CI(以前的文章:用gitlabCI快速搭建一個GitServer與CI)。 現在的Gitlab已經不再是2015年那個時候的Gitlab了。這次,是需要添加SonarQube用於代碼檢查。

安裝

下載解壓到官網下載即可

cd /opt; wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.zip

unzip sonarqube-7.9.zip

新建用戶sonar

sudo useradd sonar

chown

sudo chown -R sonar:sonar /opt/sonarqube-7.19
 

數據庫處理

參考: https://developerinsider.co/install-sonarqube-on-ubuntu/

指的一提的是,如果創建了數據庫後運行了新版本的sonar,然後再運行老版本的sonar,而且使用同一個數據庫的話(user + database),會提示錯誤,這個錯誤在web.log中,注意看下圖的最後一行:

對於這種情況最簡單的解決方式就是重新創建一個數據庫用戶和database:

sudo -i

su - postgres

createuser sonar76

psql

然後在數據庫cli中:

 ALTER USER sonar76 WITH ENCRYPTED password 'PASSWORD';

CREATE DATABASE sonar76 OWNER sonar76;

\q

更改配置:

sudo gvim sonarqube-7.9/conf/sonar.properties

使用sonar賬號嘗試啓動

sudo -i

su - sonar

/opt/sonarqube-7.9//bin/linux-x86-64/sonar.sh start

啓動後登錄localhost:9000 查看,如果有問題可以

/opt/sonarqube-7.9//bin/linux-x86-64/sonar.sh status

配合看logs裏面的log確定問題。

 

使用Apache反向代理

參考: https://www.howtoforge.com/how-to-install-sonarqube-on-ubuntu-1804/

C/C++檢查的插件

因爲默認的版本沒有,所以使用community的插件:

https://github.com/SonarOpenCommunity/sonar-cxx/wiki/SonarQube-compatibility-matrix

下載位於:

https://github.com/SonarOpenCommunity/sonar-cxx/releases

遇到的問題

root啓動的問題

查看sonar安裝目錄下面的logs裏面的es.log,可以看到無法使用root啓動

參考: SonarQube 7.7: Startup error: ‘can not run elasticsearch as root’

 

gitlab安裝插件

下載地址:https://github.com/gabrie-allaigre/sonar-gitlab-plugin

安裝C/C++和gitlab插件,到對應的官網下載然後放入到sonar裏面的extension/plugins裏面

然後在chown爲sonar即可。

然後重啓sonar,在administrator裏面查看:

使用

參考下面的兩個link:

https://www.jianshu.com/p/8a9f7f462ebb

https://docs.sonarqube.org/pages/viewpage.action?pageId=7996665

 

對於C和C++需要直接選擇一個後端,例如cppcheck,然後配置插件才能工作。

對於C語言和C++,因爲都是用.h,因此可能會出現問題:

SonarQube Language sonar.lang.patterns error

對此需要將sonar的C++裏面的文件的suffix配置更改,不能讓C和C++都匹配同樣的後綴。

參考: https://stackoverflow.com/questions/44412117/sonarqube-language-sonar-lang-patterns-error

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章