一、安裝sonar所需的數據庫表
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
設置帳號sonar,密碼sonar
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;java
設置數據包的大小,能夠在sql中輸入語句,過小的話, sonar寫數據庫會報錯,咱們設置爲400M
SHOW VARIABLES LIKE '%max_allowed_packet%';
set global max_allowed_packet=2*1024*1024*200;mysql
建議修改my.ini,永久配置max_allowed_packet=400Mlinux
此外,還有可能innodb_log_file_size過小,默認是48MB,但sonar寫數據庫的時候,可能會報錯說超過innodb_log_file_size的10%,須要增長innodb_log_file_size的配置大小,這個大小與D:\ProgramData\MySQL\MySQL Server 5.6\data下的ib_logfile0文件有關。
SET GLOBAL innodb_log_file_size=2*1024*1024*512;設置爲1024MB,這樣寫入的最大範圍能夠是102MBweb
建議修改my.ini,永久配置innodb_log_file_size=1024Msql
二、解壓縮安裝包到/usr/local下數據庫
三、設置sonar根目錄的用戶歸屬權chown -R xiao:xiao <目錄名>
切忌不要用root帳號,由於sonar依賴elasticsearch,而ES是不能再root下運行服務器
四、修改配置文件conf/sonar.propertieselasticsearch
設置mysql的鏈接帳號、密碼和數據庫路徑
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://192.168.1.101:3306/sonar?useUnicode=true&characterEn
coding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
&maxAllowedPacket=419430400
注意在URL中配置了maxAllowedPacket=419430400,否則仍是會報錯,這是由於maxAllowedPacket須要在應用客戶端和數據庫服務端都設置,注意其中的IP地址根據實際狀況修改maven
五、修改sonar的bin目錄下的執行權限
chmod +x bin/*url
六、切換到通常帳號xiao
七、啓動
./bin/linux-x86-64/sonar start
若是要重啓則是sonar restart
若是報錯,則查看./logs/下的日誌web.log,通常狀況都是目錄歸屬權限chown沒有設置,或者使用root帳號的問題
八、安裝代碼掃描器安裝sonar scanner
注意,雖然sonar默認建議用maven掃描代碼,但不少工程不是用maven管理的,仍是用scanner好。
九、配置sonar scanner
在其conf目錄中設置sonar-scanner.properties文件,指定sonar服務器的地址
sonar.host.url=http://192.168.128.132:9000
Windows環境下,在系統環境path中加入sonar scanner的bin目錄
十、在待分析的Java項目下建立配置文件sonar-project.properties
內容是
sonar.projectKey=task:project
sonar.projectName=task
sonar.projectVersion=1.0
sonar.sources=E:/project/task/src
sonar.sourceEncoding=UTF-8
sonar.java.libraries = E:/project/task/WebContent/WEB-INF/lib/*.jar
sonar.java.binaries = E:/project/task/WebContent/WEB-INF/classes
其中sonar.projectName是項目的名字,在soanr中標識
sonar.sources是源代碼所在的路徑
sonar.java.libraries是項目所依賴的庫的路徑
sonar.java.binaries是項目編譯後的class文件的路徑
十一、運行待掃描的代碼
進入待分析的項目下,執行
sonar-scanner -X
若是一切都正常,會看到命令行出現不少的文件掃描日誌,最後是寫數據庫信息,若是出現了錯誤,必定要去sonar的log目錄下的日誌文件,特別是web.log查看緣由,很大多是數據庫的鏈接配置錯誤。