Sonar安裝配置:
一.安裝jdk,版本在8以上,並配置環境變量
下載路徑:http://www.oracle.com/technetwork/cn/java/archive-139210-zhs.html
二.下載sonarqube並解壓
下載路徑:https://sonarsource.bintray.com/Distribution/sonarqube/或者直接進入官網下載:https://www.sonarqube.org/downloads/
解壓,進入對應的路徑啟動sonarqube,例如為64的Linux系統,則啟動路徑為:/xx/sonarqube-6.7.4/bin/linux-x86-64 ,然后執行./sonar.sh start也可以使用./sonar.sh console查看啟動的日志
問題:
此處啟動的時候,有可能會出現啟動之后,服務又自動停掉的情況,這是由於不能使用root用戶啟動es的原因,所以需要創建sonarUser用戶並賦權
adduser sonarUser #添加用戶
passwd sonarUser #創建密碼
chown -R sonarUser /xx/sonarqube(安裝路徑) #賦權
chown -R sonarUser /xx/jdk1.8.0_xxx(java路徑) #java賦權
然后切換至創建的用戶重新啟動sonar
默認端口為9000,啟動成功之后可以訪問瀏覽器9000端口查看:ip:9000
啟動失敗常見問題:
2020.06.10 06:45:37 WARN es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
---解決辦法:
#切換到root用戶修改
vim /etc/security/limits.conf
# 在最后面追加下面內容
*** hard nofile 65536
*** soft nofile 65536
*** 是啟動ES的用戶
2020.06.10 06:45:37 WARN es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:
# sysctl -w vm.max_map_count=262144
這種方法會在服務器重啟后失效,使用如下方法進行配置持久化:
# vim /etc/sysctl.conf
vm.max_map_count = 262144
重啟之后檢查配置是否生效:
# sysctl vm.max_map_count
2020.06.10 06:54:20 WARN es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
原文鏈接:https://blog.csdn.net/qq_36792209/article/details/103598558
2020.06.10 06:45:40 INFO es[][o.e.c.s.ClusterService] new_master {sonarqube}{5WtSSOZEQXmB-qKcyC60Rw}{iOfk5BY0SGCPWVrsqCl9Cw}{127.0.0.1}{127.0.0.1:9001}{rack_id=sonarqube}, reason: zen-disco-elected-as-master ([0] nodes joined)
/opt/sonarqube-6.7.4/conf/sonar.properties
注意:es啟動失敗,需要查看logs下 es.log web.log的log日志分析具體失敗原因
3.添加數據庫,此處以mysql為例:(要檢測的項目的代碼導入到數據庫中)
數據庫安裝過程參見:https://www.cnblogs.com/bigbrotherer/p/7241845.html
並創建用戶名密碼,例如:
## mysql -A -uroot -pxxx
MySQL> CREATE USER 'sonar'@'localhost' IDENTIFIED BY 'Sonar6.7';
MySQL> CREATE DATABASE sonar CHARACTER SET UTF8;
MySQL> GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost'
4.打開sonarqube安裝目錄下的/xx/snoar/sonarqube-xx/conf/sonar.properties文件
配置數據庫的用戶名密碼,以及使用的數據庫(當前sonar中不需要配置)
五.可以在sonar中進行漢化,使用admin/admin登錄后,進入Administrator,在應用市場中搜索chinese包,直接進行安裝,然后重啟發現已被漢化
六.安裝sonar-scanner
下載版本:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip
七.解壓sonar-scanner,配置sonar-scanner的環境變量,使用sonar-runner -v查看是否安裝成功
八..下載代碼,在代碼根目錄新建sonar-project.properties文件,填寫配置如下:
配置文件內容如下:
# must be unique in a given SonarQube instance
sonar.projectKey=my:project #你的項目名
# this is the name displayed in the SonarQube UI
sonar.projectName=apiautocore#你的項目名
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=src#你放所要分析代碼的目錄路徑
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
#language
至此,安裝配置工作結束,可以使用代碼掃描
九.在項目根目錄下 運行sonar-scannner,如果運行成功刷新http://sonarip:9000/ 下查看項目中會自動顯示該項目運行分析結果
代碼規則需要手動下載
SonarQube的Community版本是不支持對C語言代碼進行質量分析的,Developer及以上付費版本才支持。還好有一些開源的社區插件支持,比較著名的一個就是sonar-cxx。
在如下地址下載SonarQube開源C和C++的插件
C插件:sonar-c-plugin-1.3.1.1807.jar
https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-c-plugin-1.3.1.1807.jar
C++插件:sonar-cxx-plugin-1.3.1.1807.jar
https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.3.1/sonar-cxx-plugin-1.3.1.1807.jar
將下載下來的插件放到SonarQube的安裝目錄中的extensions/plugins中
作者:bingfengxiao
鏈接:https://www.jianshu.com/p/39614530df28
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
1、如果使用sonar-scanner分析出現如下錯誤:
ERROR: Error during SonarQube Scanner execution org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
是由於4.12以后的soanr-java分析插件,在分析的時候提示Please provide compiled classes of your project with sonar.java.binaries property的問題
解決:
下載4.12以前的sonar-java插件即可替換至/xx/sonarqube-xx/extensions/plugins目錄下,重啟sonar
即可,下載路徑:https://github.com/SonarSource/sonar-java
2、使用sonar分析python代碼的時候,在項目路徑下的sonar-project.properties文件中,分析代碼不能寫成python,需要填寫為py才能識別,否則會一直提示需要下載python相關的插件
自定義代碼規則:
sonarqube內置的規則是沒辦法啟用禁用的
那么,你有兩種選擇:
1.復制一份內置的代碼規則,再在它的基礎上進行修改
進入質量配置,選擇需要的語言,例如選擇C#,點擊下拉按鈕,選擇復制,填寫名稱,則該種語言下的所有規則均被復制
然后在修改配置中的規則。
在下拉框中選擇比較按鈕,可以查看每個配置之間的區別
配置完成后,將其設置為默認,下一次進行代碼檢查的時候就會使用自行創建的規則進行檢測了。
2.自行創建代碼規則:
進入質量配置,點擊右上角的創建按鈕,輸入自定義名稱,選擇語言,例如選擇java,則創建了一個java的規則,但是其規則為空,然后選擇激活更多的規則,激活需要的規則即可,如果存在父子關系,那么兩個配置下的規則也存在繼承關系。