【廣告】
Sonarqube的優(yōu)點(diǎn):
(1)支持所有語言的檢測(cè)。一個(gè)工具,搞定所有。
(2)靈活擴(kuò)展,插拔式使用。自定義的代碼檢測(cè)規(guī)則,可自定義插件,獨(dú)立打成JAR包放到SONARQUBE插件目錄下,重啟即生效,開發(fā)使用非常方便。而且自帶UT驗(yàn)證框架,開發(fā)。
(3)規(guī)則支持多租戶隔離。租戶可定制自己的規(guī)則集。
(4)生態(tài)強(qiáng)大,業(yè)界有諸多插件,sonarqube,與jenkins友好集成。
(5)部署使用便捷。
(6)架構(gòu)松耦合,通過與maven/jenkins等集成,將代碼掃描的計(jì)算消耗遷移到業(yè)務(wù)或者構(gòu)建方的資源上,代碼質(zhì)量分析工具,極大的提升了自身的吞吐能力。
SonarQube 掃描 接入方式
SonarQube 接入方式sonarqube
SonarQube包含多種接入方式,這里提供常用的幾種接入方式說明:
Jenkins集成方式
Maven集成方式
直接掃描方式
無論采用哪種集成方式,首先需要在sonar服務(wù)中生成授權(quán)token:
Jenkins集成方式
Jenkins集成具體實(shí)現(xiàn)方式包含兩種:
通過Jenkins的Job觸發(fā)Maven命令執(zhí)行,這種方式實(shí)際上是通過Maven集成方式來進(jìn)行掃描的;
通過Jenkins的Sonar插件執(zhí)行,sonarqube技術(shù)支持,此方式實(shí)際是觸發(fā)直接掃描方式來進(jìn)行掃描的,Jenkins插件的安裝方式詳見安裝
Maven集成方式全局配置
在settings.xml文件中配置以下內(nèi)容
添加插件
在pom.xml中添加sonar插件:
執(zhí)行分析
如果是多module項(xiàng)目,在執(zhí)行掃描前需要先對(duì)項(xiàng)目進(jìn)行install操作,即:
分析配置如果需要修改sonar掃描參數(shù)的默認(rèn)值,在pom.xml的properties中修改即可,支持的參數(shù)較多
直接掃描方式
配置在項(xiàng)目根目錄中創(chuàng)建sonar-project.properties配置文件,配置文件中包含以下內(nèi)容:
sonarqube問題修改總結(jié)
一、代碼復(fù)雜度問題
1、類的復(fù)雜度過高。
說明:Split this class into smaller and more specialized ones to reduce its dependencies on other classes from 24 to the maximum authorized 20 or less.
原因:類之間的耦合度過高,引用了太多其他的類,
錯(cuò)誤示例:
修改建議:根據(jù)面向?qū)ο蟮膯我宦氊?zé)進(jìn)行設(shè)計(jì),sonarqube企業(yè)版,進(jìn)行降耦。
2、多重循環(huán)嵌套
說明:代碼塊中包含多個(gè)if、for、while、switch,影響閱讀,難以維護(hù)
錯(cuò)誤示例
企業(yè): 蘇州華克斯信息科技有限公司
手機(jī): 13862561363
電話: 0512-62382981
地址: 蘇州工業(yè)園區(qū)新平街388號(hào)