SonarQube代码审查工具
介紹
SonarQube ? 是一種自動代碼審查工具,用于檢測代碼中的錯誤、漏洞和代碼異味。它可以與您現有的工作流程集成,以支持跨項目分支和拉取請求的持續代碼檢查
安裝
下載SnoarQube
版本:7.5 支持jdk1.8
https://binaries.sonarsource.com/Distribution/sonarqube/
下載漢化包
SnoarQube 7+
https://github.com/xuhuisheng/sonar-l10n-zh
下載p3c
為修改分析規則服務的插件,安裝成功后修改分析規則的時候可以搜索到pc3 相關規則
https://github.com/rhinoceros/sonar-p3c-pmd/releases/tag/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0
下載支持多分支插件
SnoarQube7.5
https://github.com/mc1arke/sonarqube-community-branch-plugin/releases
?
將下載的包放到\sonarqube-7.5\extensions\plugins 目錄重啟sonar服務即可。
?
啟動服務
命令
切換到對應的環境的目錄的bin 目錄下 eg: D:\work_install\sonarqube-7.5\bin\windows-x86-64 ./StartSonar.bat start 或者雙擊查看啟動日志
切換到 D:\work_install\sonarqube-7.5\logs
查看web.log
linunx 下使用: tail -f run web.log
沒有異常然后在瀏覽器器輸入http://localhost:9000
分析項目
新建項目
通過maven 運行Sonar 掃描 得到結果
修改分析規則
P3C 分析結果
?
配置分支
通過projectKey 區分分支
-Dsonar.projectKey=v1
-Dsonar.projectKey==v2
更多參數:https://docs.sonarqube.org/7.5/analysis/analysis-parameters/
?
通過插件+配置
不配置默認是顯示master 實際并不是真實git 中 master 只是當前分支顯示的命名
-Dsonar.branch.name=master
匹配長期分支
4.0.1_init 符合長期分支、temp 不符合就是短期分支
短期分支在 30 天之內沒有分析,就會被永久刪除。長期分支不會
新建自己數據庫
Sonarqube 默認是使用自己的H2 嵌入式數據庫,想要靈活,Sonarqube 7.5支持mysql 、oracle、sqlserver配置
mysql 配置
sonar.jdbc.username=root sonar.jdbc.password=root #----- MySQL >=5.6 && <8.0 # Support of MySQL is dropped in Data Center Editions and deprecated in all other editions # Only InnoDB storage engine is supported (not myISAM). # Only the bundled driver is supported. It can not be changed. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false重啟sonarqube
查看web.log 啟動是否成功
啟動完成后查看自己數據庫
IDEA 安裝插件
右擊選擇分析以及結果
單元測試覆蓋率
集成jacoco
<plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.7.8</version><executions><execution><goals><goal>prepare-agent</goal><goal>report</goal></goals></execution></executions></plugin>命令
install sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.branch.name=master -Dsonar.login=f8da027326de69c6b6ed2574c6be8c33de424d416注意:mvn test 不要禁用
集成測試效果
沒有統計單元測試
有統計單元測試
問題
分析不準確
解決:針對整個項目代碼不多 建議使用IDEA 插件SonarLine 直接獲取審查結果
版本問題:
JDK、SonarQube、Mysql版本以及相關插件 版本需要對應。
自定義分析規則
自定義規則流程
實現
總結
以上是生活随笔為你收集整理的SonarQube代码审查工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 评论关于中国工厂代工的Android
- 下一篇: 《A First Course in P