sonar安裝及使用


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的規則,但是其規則為空,然后選擇激活更多的規則,激活需要的規則即可,如果存在父子關系,那么兩個配置下的規則也存在繼承關系。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM