Sonar
官方網(wǎng)站
Sonar 是一個(gè)用于代碼質(zhì)量管理的開放平臺(tái)意狠。通過插件機(jī)制嘶卧,Sonar 可以集成不同的測試工具,代碼分析工具俯萎,以及持續(xù)集成工具傲宜。幫助文檔
系統(tǒng)構(gòu)成
SonarQube平臺(tái)由4部分組成:
- SonarQube服務(wù)器
1. Web服務(wù)器的開發(fā)者,管理者夫啊,瀏覽質(zhì)量快照和配置SonarQube實(shí)例
2.基于Elasticsearch搜索服務(wù)器從UI向后搜索
3.負(fù)責(zé)處理代碼分析報(bào)告計(jì)算引擎服務(wù)器函卒,并將其保存在數(shù)據(jù)庫SonarQube - SonarQube數(shù)據(jù)庫來存儲(chǔ)
- 多個(gè)插件
- 一個(gè)或多個(gè)SonarQube Scanners:可以與CI服務(wù)進(jìn)行集成
系統(tǒng)構(gòu)成和相互關(guān)系
系統(tǒng)集成
1.開發(fā)人員的代碼在自己的IDE和使用SonarLint運(yùn)行局部分析。
2.開發(fā)人員推他們的代碼到自己喜愛的供應(yīng)鏈管理:SCM撇眯,SVN报嵌,TFVC躁愿,...
3.持續(xù)集成服務(wù)器觸發(fā)自動(dòng)構(gòu)建和SonarQube掃描儀的運(yùn)行SonarQube分析所需的執(zhí)行。
4.分析報(bào)告被發(fā)送到SonarQube服務(wù)器進(jìn)行處理沪蓬。
5.SonarQube服務(wù)器處理和存儲(chǔ)分析報(bào)告導(dǎo)致SonarQube數(shù)據(jù)庫,并顯示結(jié)果在UI中来候。
6.開發(fā)者審核跷叉,評(píng)論,挑戰(zhàn)他們的管理营搅,并通過SonarQube UI減少他們的技術(shù)債務(wù)問題云挟。
7.經(jīng)理收到的分析報(bào)告。 OPS使用API??從SonarQube自動(dòng)化配置和提取數(shù)據(jù)转质。 OPS使用JMX來監(jiān)控SonarQube服務(wù)器园欣。
myaql5.7
- 配置my.ini文件
basedir = D:\\mysql-5.7.17-win32
datadir = D:\\mysql-5.7.17-win32\\data
port = 3306
-
進(jìn)行初始化操作
直接安裝啟動(dòng)發(fā)現(xiàn)如下錯(cuò)誤:
啟動(dòng)失敗
應(yīng)首先進(jìn)行初始化操作才能正常
> mysqld --initialize
> mysqld --install
> net start mysql
- 修改初始化root密碼
修改my.ini,在[mysqld]下增加
skip-grant-tables
重啟mysql服務(wù)
> mysql
mysql> use mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('123456') where USER='root';
mysql> flush privileges;
mysql> quit;
重新進(jìn)行登錄
> mysql -u root -p
123456
mysql> set password = password('123456');
終于修改成功了休蟹!感覺好復(fù)雜7锌荨!赂弓!
啟動(dòng)Sonar
修改配置文件
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
啟動(dòng)之后使用mysql數(shù)據(jù)庫
示例使用
- 啟動(dòng)SonarQube绑榴,默認(rèn)端口9000
- 下載Sonar Scanner作為客戶端
- 下載演示用例子:在例子代碼中執(zhí)行客戶端腳本
-
在web端查看結(jié)果
結(jié)果截圖 - 配置文件中修改端口和應(yīng)用
默認(rèn)的端口為9000,應(yīng)用為/盈魁,可以在配置文件中進(jìn)行修改
sonar.web.context=/sonar
sonar.web.port=9881
- 下載中文插件
使用管理者登錄系統(tǒng):默認(rèn)admin/admin
在配置->系統(tǒng)->更新中心中可以安裝中文插件:查詢chinese即可安裝 - 配置數(shù)據(jù)庫
使用Mysql翔怎,版本必須在5.5以上,使用innodb引擎杨耙。在配置文件中增加如下的內(nèi)容
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false
運(yùn)行啟動(dòng)腳本赤套,需要比較長的時(shí)間進(jìn)行數(shù)據(jù)庫初始化
Sonar客戶端
客戶端主要有:sonar-scanner
maven客戶端:
- 使用自定義的mvn setting.xml文件,增加如下的內(nèi)容:
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://localhost:9881/sonar
</sonar.host.url>
</properties>
</profile>
</profiles>
- 工程pom.xml文件中增加如下內(nèi)容
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.language>java</sonar.language>
</properties>
- 進(jìn)行代碼檢查
mvn clean install -sC:\Users\Administrator\.m2\settings-sonar.xml
mvn sonar:sonar -sC:\Users\Administrator\.m2\settings-sonar.xml
-
在瀏覽器中查看執(zhí)行結(jié)果
執(zhí)行結(jié)果