SonarQube代碼檢查工具-2021-01-10

SonarQube 代碼質(zhì)量檢查工具

官網(wǎng)對于SonarQube的描述

  • 15種語言的靜態(tài)代碼分析

    Java堂淡、JavaScript馋缅、C#、TypeScript绢淀、Kotlin萤悴、Ruby、Go皆的、Scala覆履、Flex、Python费薄、PHP硝全、HTML、CSS楞抡、XML和VB.NET

  • 檢測缺陷和漏洞

  • 查看安全熱點

  • 跟蹤代碼氣味和修復(fù)你的技術(shù)債務(wù)

  • 代碼質(zhì)量度量和歷史記錄

  • CI/CD集成

  • 可擴展柳沙,有50個社區(qū)插件

官方網(wǎng)站

https://docs.sonarqube.org/latest/

由于 7.8以后的版本需要JDK11的支持,如果用的是JDK8請選擇 6.x~7.8.x中間的版本

內(nèi)存要求拌倍,至少2G

支持的數(shù)據(jù)庫

SonarQube-database.png

其他詳細的配置,請參與官網(wǎng)的配置說明

https://docs.sonarqube.org/7.9/requirements/requirements/

首頁到最下方噪径,可以選擇不同版本進行下載

image-20210109222726066.png

比如柱恤,我用的JDK8,這里選擇7.8版本的 Community 版本找爱,其他版本是收費的梗顺,下載好之后,解壓縮并進入到對應(yīng)的操作系統(tǒng)目錄下车摄,例如我這里用的是ubuntu寺谤,因此仑鸥,切換到Linux目錄下

/sonarqube-7.8/bin/linux-x86-64
## 啟動
sh sonar.sh start
## 查看啟動日志
tail -200f ../../logs/sonar.log
## 看到以下日志時,表示啟動成功
2021.01.09 22:33:03 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2021.01.09 22:33:03 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

訪問SonarQube

SonarQube默認的端口號是9000:

http://localhost:9000
image-20210109223541144.png

默認賬號密碼都是admin

image-20210109223615838.png

登入系統(tǒng)之后的界面变屁,這里需要注意的是眼俊,默認SonarQube用的是內(nèi)嵌數(shù)據(jù)庫,這種數(shù)據(jù)庫是不用用于生產(chǎn)的粟关,因此疮胖,下方會有一段黃色的提示信息。

應(yīng)用到項目(整合到MAVEN)

方法一: 全局配置

在maven的setting.xml配置文件中添加 .例子

<settings>
    <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://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

這里使用的是沒有配置數(shù)據(jù)庫的例子闷板,如果需要添加數(shù)據(jù)庫澎灸,則需要在<properties></properties>下添加關(guān)于數(shù)據(jù)庫的配置,例子:

<properties>
    <sonar.jdbc.url>jdbc:postgresql://localhost/sonar?currentSchema=public</sonar.jdbc.url>
    <sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>
    <sonar.jdbc.username>itmuch</sonar.jdbc.username>
    <sonar.jdbc.password>itmuch</sonar.jdbc.password>
    <sonar.host.url>http://127.0.0.1:9000</sonar.host.url>
</properties>

接著遮晚,在需要分析的項目中執(zhí)行

 clean verify sonar:sonar -Dmaven.test.skip=true

接著點擊All就可以看到對剛才項目的分析了

image-20210110113431549.png

SonarQube還提供了強大的插件庫性昭,在解決項目分析出來的問題之前,我先安裝一個中文包

image-20210110113731869.png

在Administration下县遣,選擇 Marketplace選項糜颠,在Plugins一欄中輸入 chines找到中文包,點擊install艺玲,這個安裝會稍微慢一些括蝠,耐心等待即可。

在安裝過程中饭聚,插件商店默認對應(yīng)的是最新的SonarQube忌警,因此會有版本不匹配的問題,這里我們可以去SonarQube的github找尋對應(yīng)的版本

https://github.com/xuhuisheng/sonar-l10n-zh/releases

比如我這里的SonarQube是7.8版本就使用這個版本對應(yīng)的插件包

image-20210110114249435.png

下載好之后秒梳,將插件包復(fù)制到 SonarQube的以下 目錄

scp sonar-l10n-zh-plugin-1.28.jar frend@192.168.0.202:/home/frend/dev/tools/sonarqube-7.8/extensions/plugins

重啟SonarQube

修復(fù)bug法绵、漏洞

image-20210110121506217.png

執(zhí)行分析語句之后,會將我們執(zhí)行的項目中的酪碘、bug朋譬、漏洞、以及不優(yōu)雅的地方展示展示出來兴垦,這里以上圖為例

點擊查看規(guī)則徙赢,會有一個示例

image-20210110121721537.png

大致意思就是創(chuàng)建之后的狀態(tài)值,我們需要判斷是否創(chuàng)建成功探越,其中的例子也是很明顯能看出來的

這里將提示漏洞的地方狡赐,修改一下

if (!file.exists()) {
    if (!file.createNewFile()) {
        log.error("創(chuàng)建文件={},時不成功", file.getName());
    }
}       

重新執(zhí)行分析

mvn clean verify sonar:sonar -Dmaven.test.skip=true
image-20210110122202978.png

漏洞就沒了,剩下的不優(yōu)雅的地方[異味]和安全熱點钦幔,枕屉,兄弟們,等我慢慢修復(fù)

biaoqingbao.jpg

參考官網(wǎng)的教程

https://docs.sonarqube.org/7.8/analysis/scan/sonarscanner-for-maven/

中文插件包安裝參考教程

https://blog.csdn.net/xinluke/article/details/52174026

方法二: 使用基于Token的命令行控制

SonarQube還有一個使用命令行控制的方式鲤氢,事先需要先創(chuàng)建一個用戶Token

在右上角搀擂,點擊用戶圖標西潘,選擇我的賬號

image-20210110123353138.png

在令牌欄輸入令牌名稱,點擊生成哨颂,此時喷市,記住這個token

使用以下命令,攜帶token咆蒿,就可以進行分析了东抹,此時,不需要maven下的setting.xml的配置了沃测,為了驗證缭黔,我們先將setting.xml中的步驟一配置注釋掉

mvn sonar:sonar -Dsonar.host.url=http://192.168.0.202:9000 -Dsonar.login=37ad464c14b9bebc19cc606ec6ae85e0ffb7f379 -Dmaven.test.skip=true

至此: SonarQube簡單的使用就結(jié)束了,下方參考文章中有更多玩法蒂破,有興趣的朋友可以多了解了解馏谨,祝大家變得更強~

參考文章:

https://blog.csdn.net/wym2011aaj/article/details/98055438

https://docs.sonarqube.org/7.8/analysis/scan/sonarscanner-for-maven/

https://blog.csdn.net/xinluke/article/details/52174026

https://blog.csdn.net/weixin_40861707/article/details/82117232

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市附迷,隨后出現(xiàn)的幾起案子惧互,更是在濱河造成了極大的恐慌,老刑警劉巖喇伯,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喊儡,死亡現(xiàn)場離奇詭異,居然都是意外死亡稻据,警方通過查閱死者的電腦和手機艾猜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捻悯,“玉大人匆赃,你說我怎么就攤上這事〗窀浚” “怎么了算柳?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長姓言。 經(jīng)常有香客問我瞬项,道長,這世上最難降的妖魔是什么何荚? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任滥壕,我火速辦了婚禮,結(jié)果婚禮上兽泣,老公的妹妹穿的比我還像新娘。我一直安慰自己胁孙,他們只是感情好唠倦,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布称鳞。 她就那樣靜靜地躺著,像睡著了一般稠鼻。 火紅的嫁衣襯著肌膚如雪冈止。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天候齿,我揣著相機與錄音熙暴,去河邊找鬼。 笑死慌盯,一個胖子當著我的面吹牛周霉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亚皂,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼俱箱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灭必?” 一聲冷哼從身側(cè)響起狞谱,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎禁漓,沒想到半個月后跟衅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡播歼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年伶跷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荚恶。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡撩穿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谒撼,到底是詐尸還是另有隱情食寡,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布廓潜,位于F島的核電站抵皱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辩蛋。R本人自食惡果不足惜呻畸,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悼院。 院中可真熱鬧伤为,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至位衩,卻和暖如春裆蒸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糖驴。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工僚祷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贮缕。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓辙谜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跷睦。 傳聞我的和親對象是個殘疾皇子筷弦,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容