sonar安裝和使用

2020-12-18 感悟xiaotm

jdk的版本需要和Sonar版本一致(32bit或者都是64bit)

[原]代碼審查工具Sonar(一)-- 簡介與安裝

代碼審查是持續集成理論裡重要的一部分。審查軟體和測試軟體之間存在著微妙的差別。測試是動態的,它執行軟體,目的是測試軟體的功能。審查則基於一 組預先定義的規則分析代碼。審查也不同於編譯。編譯是從語法的角度來檢查代碼,審查則是從語法以外的角度著手,例如,編碼風格,編碼規範,重碼率,複雜 度,代碼注釋率等等。眾所周知,編譯正確的代碼不一定就沒有問題,那麼除了測試人員從運行整個軟體的角度來排查功能點,從原始碼分析的角度找到潛在的問題 點也是一項重要的補充工作。Sonar(也叫SonarQube)就是一款優秀的代碼審查工具。其官網地址:http://www.sonarqube.org/

下圖展示的是Sonar的架構。

最上面一層代表輸入,也就是我們要檢查的原始碼。這些原始碼可以是Java代碼, Cobol代碼,C#代碼等。目前Sonar支持對20多種語言的原始碼的檢查。

中間一層有兩部分,右邊綠色方框標記的"Eclipse"是指Sonar針對Eclipse的插件,方便用戶在Eclipse裡直接進行與Sonar相關的操作。這部分不在本文的討論範圍之內。

中間層的左邊是Analysers,指的是進行代碼分析的程序,統稱為plugin。這些程序既包括Sonar自己提供的分析程序,也包括第三方的 分析程序,例如,針對C++代碼,有Sonar的程序檢查代碼行數,重碼率,注釋率,也有做靜態檢查的第三方工具cppcheck,做運行時內存檢測的 Valgrind,做風格檢查的Vera++,以及做安全性檢查的RATS等。所有這些工具將檢查結果生成xml格式的report,由sonar程序讀 取到資料庫中,也就是第三層左邊的database。

在第三層,Sonar的web應用程式讀取database裡的代碼檢查結果,並以豐富的圖像界面形式呈現在用戶面前。Sonar有相當數量的plugin是與界面效果相關的。

通過Sonar進行一次代碼審查的過程就是從第一層開始,沿著箭頭一直行進到Server呈現部分結束的工作流程。

下面介紹Sonar server的安裝:

1. 安裝database

Sonar自帶一個簡易的database,如果是想真正將Sonar投入項目使用,而不是實驗性的在本地操作一下,最好安裝專門的資料庫。我們選擇的是免費的mysql版本。http://dev.mysql.com/downloads/mysql/

在安裝目錄/bin/windowsxxxxx下運行:mysqld --install 將mysql安裝為windows service,在service列表裡start mysql service。

運行:mysql -u root,進入mysql client

運行下面的命令行創建database sonar並創建用戶sonar,密碼sonar

create user 'sonar'@'localhost' identified by 'sonar';

create database sonar;

grant all privileges on *.* to 'sonar'@'localhost';

2. 安裝Sonar server

需要先安裝JDK6或7

然後下載並解壓Sonar包即可。http://www.sonarqube.org/downloads/ 選擇download最新的SonarQube。

3. 修改配置文件

<install_directory>/conf/sonar.properties,重點打開注釋(刪除行首的#符號)並修改下面幾個部分:

a. web settings->sonar.web.host/port/context

b. sonar.jdbc.url,因為我安裝的是mysql,所以將原本打開的h2行注釋掉,將mysql的部分打開。

<install_directory>/conf/wrapper.conf, 因為安裝的是JDK,將wrapper.java.additional.4=-server行首的注釋符號 # 刪掉

4. 運行<install_directory>/bin下的InstallNTService.bat可以將sonar安裝為windows service,如果開啟service有任何問題,應該在命令行窗口中手工運行StartSonar.bat來查看問題點,並參考<install_directory>/logs裡的日誌文件。

5. 安裝analyser,這個要根據語言來選擇。詳情可參見http://docs.codehaus.org/display/SONAR/Languages

例如:C#代碼推薦sonar runner,而C++代碼推薦maven。因為筆者要分析的是C#代碼,因此下面介紹sonar runner的安裝方法。

a. 登錄sonar,預設的管理員帳號是admin/admin,選擇Update Center->Available Plugins->C#和.NET

b.安裝C#代碼的第三方分析器,安裝列表詳見http://docs.codehaus.org/display/SONAR/C%23+Ecosystem+Installation+Guide

c. 安裝sonar runner。http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.3.zip

d. 創建環境變量SONAR_RUNNER_HOME用來指向sonar runner的安裝目錄。把<install_directory>/bin加到環境變量path中去。

e. 修改sonar runner安裝目錄下的配置文件<install_directory>/conf/sonar-runner.properties,刪除對應database行首的#,在本例中是mysql行。打開sonar.host.url行的注釋。

f. 如果能在cmd窗口中正確運行sonar-runner -h則表示sonar-runner安裝配置成功。

中文插件

http://jingyan.baidu.com/article/48206aeafc922b216ad6b3cb.html

SonarQube為靜態代碼檢查工具,幫助檢查代碼缺陷,改善代碼質量,提高開發速度,通過系列使用經驗分享給小夥伴們!

我們已經介紹過如何安裝了,現在我們來介紹如何分析,分析和安裝一樣簡單

【三】安裝中文插件

工具/原料

中文語言插件方法/步驟

1.進入插件下載頁面http://docs.codehaus.org/display/SONAR/Plugin+Library

2.找到Localization---chinese 點擊

中文插件下載頁面

注意,選擇插件一定要對應好版本

如4.3的sonar,就選用4.1+的插件版本

點擊Download 開始下載

下載後,放入sonar目錄如下sonarqube-4.3\extensions\plugins

重啟Sonar,打開頁面

END注意事項

插件複製進去後一定要重啟,才能看到效果哦linux版本安裝

http://www.blogjava.net/qileilove/archive/2013/09/25/404405.html

SonarQube代碼質量管理平臺安裝與使用

Sonar簡介

Sonar是一個用於代碼質量管理的開源平臺,用於管理原始碼的質量,可以從七個維度檢測代碼質量

通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種程式語言的代碼質量管理與檢測sonarQube能帶來什麼?

Developers' Seven Deadly Sins

1.糟糕的複雜度分布

文件、類、方法等,如果複雜度過高將難以改變,這會使得開發人員難以理解它們,且如果沒有自動化的單元測試,對於程序中的任何組件的改變都將可能導致需要全面的回歸測試

2.重複

顯然程序中包含大量複製粘貼的代碼是質量低下的sonar可以展示源碼中重複嚴重的地方

3.缺乏單元測試

sonar可以很方便地統計並展示單元測試覆蓋率

4.沒有代碼標準

sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫

5.沒有足夠的或者過多的注釋

沒有注釋將使代碼可讀性變差,特別是當不可避免地出現人員變動時,程序的可讀性將大幅下降

而過多的注釋又會使得開發人員將精力過多地花費在閱讀注釋上,亦違背初衷

6.潛在的bug

sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢測出潛在的bug

7.糟糕的設計(原文Spaghetti Design,義大利麵式設計)

通過sonar可以找出循環,展示包與包、類與類之間的相互依賴關係

可以檢測自定義的架構規則

通過sonar可以管理第三方的jar包

可以利用LCOM4檢測單個任務規則的應用情況

檢測耦合

關於Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design

通過sonar可以有效檢測以上在程序開發過程中的七大問題

SonarQube安裝

預置條件

1.已安裝JAVA環境

2.已安裝有MySQL資料庫

軟體下載地址:http://www.sonarqube.org/downloads/

下載SonarQube與SonarQube Runner

中文補丁包下載:http://docs.codehaus.org/display/SONAR/Chinese+Pack

1.資料庫配置

進入資料庫命令

2.安裝sonar與sonar-runner

將下載的sonarqube-7.0.zip包解壓至Linux某路徑如/app/export/servers/sonar/

將下載的sonar-runner-2.4zip包解壓某路徑/app/export/servers/sonar/

注意:此版本需要mysql5.6以上版本支持

添加SONAR_HOME、SONAR_RUNNER_HOME環境變量,並將SONAR_RUNNER_HOME加入PATH

修改sonar配置文件

編輯<install_directory>/conf/sonar.properties文件,配置資料庫設置,默認已經提供了各類資料庫的支持

這裡使用mysql,因此取消mysql模塊的注釋

字體: 小 中 大 | 上一篇 下一篇 | 列印 | 我要投稿

修改sonar-runner的配置文件

切換至sonar-runner的安裝目錄下,修改sonar-runner.properties

根據實際使用資料庫情況取消相應注釋

3.添加資料庫驅動

除了Oracle資料庫外,其它資料庫驅動都默認已經提供了,且這些已添加的驅動是sonar唯一支持的,因此不需要修改

如果是Oracle資料庫,需要複製JDBC驅動至<install_directory>/extensions/jdbc-driver/oracle目錄

4.啟動服務

目錄切換至sonar的<install_directory>/bin/linux-x86-64/目錄,啟動服務

#./sonar.sh start 啟動服務

#./sonar.sh stop 停止服務

#./sonar.sh restart 重啟服務

注意:

1、先執行sudo chown -R mysql.mysql /app/export/servers/mysql/

2、用非root用戶(admin)啟動

至此,sonar就安裝好了

訪問http:\\localhost:9000即可

5.sonar中文補丁包安裝

中文包安裝

安裝中文補丁包可以通過訪問http:\\localhost:9000,打開sonar後,進入更新中心安裝Chinese Pack

或者下載中文補丁包後,放到SONARQUBE_HOME/extensions/plugins目錄,然後重啟SonarQube服務 sonar作為Linux服務並開機自啟動

新建文件/etc/init.d/sonar,輸入如下內容:

SonarQube開機自啟動(Ubuntu, 32位):

sudo ln -s $SONAR_HOME/bin/linux-x86-32/sonar.sh /usr/bin/sonar

sudo chmod 755 /etc/init.d/sonar

sudo update-rc.d sonar defaults

SonarQube開機自啟動(RedHat, CentOS, 64位):

sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar

sudo chmod 755 /etc/init.d/sonar

sudo chkconfig --add sonar

使用SonarQube Runner分析源碼

預置條件

已安裝SonarQube Runner且環境變量已配置,即sonar-runner命令可在任意目錄下執行

1.在項目源碼的根目錄下創建sonar-project.properties配置文件

以android項目為例:

註:要使用Android Lint

規則分析需要先訪問http:\\localhost:9000更新中心添加Android Lint插件,使其可以分析Android Lint規則

2.執行分析

切換到項目源碼根目錄,執行命令

# sonar-runner

分析成功後訪問http:\\localhost:9000即可查看分析結果

不同參數的意思:

http://docs.codehaus.org/display/SONAR/Analysis+Parameters

不同項目的源碼分析示例下載:

https://github.com/SonarSource/sonar-examples/zipball/master

相關焦點

  • eclipse離線安裝sonarlink和阿里規約插件提高代碼質量
    在線安裝方式很簡單,在網上搜到的大部分也都是在線安裝的,在這裡我只記錄下離線安裝,因為有時候網絡原因,在線安裝並不是那麼簡單。一、離線安裝sonarlink下載之後解壓,將featrues和plugins文件夾複製到eclipse下的dropins文件夾下。
  • 如何將SonarQube代碼質量分析工具安裝到Ubuntu Server 20.04上?
    如果您是雲原生開發人員(或任何其他開發人員),可能需要一款工具來分析代碼,幫助查找安全問題、缺陷、漏洞、異常和一般問題。如果您只從事一個小項目,可以通過老式的手動方法來解決。如果您經常為CI/CD之類的項目編寫代碼,工作量決定了您可能無法手動檢查。這時如何是好?您總是可以安裝SonarQube之類的工具。
  • 摘要:利用sonar工具進行代碼質量管理
    利用sonar工具進行代碼質量管理下載sonarqube將文件sonarqube-4.5.1.zip解壓到合適的目錄下,解壓後的文件目錄結構如下啟動sonar伺服器,sonarqube-4.5.1/bin/windows-x86-64/StartSonar.bat
  • 代碼審核之sonarqube初探
    (6.7.1)sonar-runner(2.4)備註:sonarqube版本在4.4以上,就要下載sonar-runner2.4版本步驟(1) 解壓sonarqube安裝包、sonar-runner安裝包 unzip sonarqube-6.7.1.zip unzip sonar-runner2.4.zip(2) 設置SONAR_HOME、SONAR_RUNNER_HOME環境變量,並將SONAR_HOME、SONAR_RUNNER_HOME
  • 代碼檢查|單元檢測|sonar代碼規範檢查|代碼自測|sonarqube7.4
    第一步下載最新版的sonarqube7.41.官方下載地址,下載社區版,是開源免費的。2.不知道什麼原因我在官網下載特別慢,可能是因為資源不足的原因。所以我在這裡放一個備連結。第二步當然是解壓並且啟動服務1.解壓後呢2.打開bin目錄,選擇適合當前作業系統的文件夾3.啟動對應的服務啟動程序即可第三步通過瀏覽器訪問sonar伺服器1.打開瀏覽器進入
  • 那些總是寫「爛代碼」的程式設計師,強烈推薦使用這款 IntelliJ IDEA...
    不遵循代碼標準sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫2.潛在的缺陷sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢測出潛在的缺陷3.
  • 活動監視器gotop的安裝和使用
    安裝 GotopGotop 是用 Go 編寫的,所以我們需要先安裝它。要在 Linux 中安裝 Go 語言,請參閱以下指南。安裝 Go 之後,使用以下命令下載最新的 Gotop 二進位文件。$ cp gotop /usr/local/bin最後,用下面的命令使其可執行:$ chmod+x /usr/local/bin/gotop如果你使用的是基於 Arch 的系統,Gotop 存在於AUR中,所以你可以使用任何 AUR 助手程序進行安裝。
  • unity3d安裝和使用介紹 - CSDN
    因為 Visual Studio 有強大的包管理器插件,所以即便是不熟悉 NuGet 命令的小夥伴也能輕鬆安裝和管理 NuGet 包。不過,對 Unity C# 項目來說,你並不能直接引用 dll,也不能直接使用自帶的 NuGet 包管理器完成 NuGet 包安裝。本文介紹原因和真正的引用方法。
  • Python安裝教程和使用技巧
    3.其他集成開發環境,如PythonWin等,有編輯和調試能力,還實現了MFC類庫存的包裝。使用python自帶的開發環境。File—New File,新建py文檔,編寫程序,保存。Run——Run module,可得到運行結果。Python可以把屬性、方法結合在一起,不可以直接訪問對象的屬性,僅能通過接口與對象發生聯繫。
  • 海爾洗衣機使用說明和安裝方法
    購買與安裝 購買海爾洗衣機可以根據自己的喜好和經濟條件來決定,其實個人認為海爾洗衣機都是大同小異的,只是在洗衣容量方面存在差異,購買之後,售後會給你安裝並且調試的。 海爾洗衣機使用說明 1.接通電源 將衣服放進海爾洗衣機裡面,然後接好進水管和電源,同時打開水龍頭。 2.倒入洗衣粉或者洗衣液 洗衣粉的多少應該根據衣服的多少和乾淨程度來決定。洗衣粉可以直接倒進海爾洗衣機裡面不過為了均勻最好是倒入海爾洗衣機自帶的洗衣粉盒裡面。
  • 如何安裝和使用Beanstalkd工作隊列
    目前,這是一個絕對可靠,易於安裝的消息傳遞服務,是完美的開始和使用。如前所述,Beanstalkd的主要用例是管理不同部分和工人之間的工作流應用程式的部署通過工作隊列和消息堆棧,類似於其他受歡迎的解決方案,比如RabbitMQ。然而,創建Beanstalkd使它有別於其他工作。
  • Pycharm上Git安裝和使用(程式設計師必備)
    個人認為,作為一名程式設計師,學會使用和利用好GitHub這個非常方便的工具非常必要,Git可以非常方便的上傳和下載你的代碼,特別作為初學者,你可以把平常練習的代碼和筆記統統放在GitHub上面,對你們找以後工作和程序調用非常有幫助。這是你的能力的證明和學習歷程的記錄。作為自學者,所以覺得在這裡給大家講解如何安裝和使用Git這個工具非常重要。
  • 蹲便器價格使用環境和安裝注意
    蹲便器價格使用環境和安裝注意 ,「icj3eq1gnex」 蹲便器價格使用環境和安裝注意首先檢查蹲便器的中心與牆面中心線是否一致,如有錯位應及時進行調整,以蹲便器不扭斜為宜。
  • 如何安裝和使用Color Highlight插件
    如何安裝和使用Color Highlight插件1.點擊最左側的活動欄裡的【擴展插件】按鈕,切換至安裝擴展插件的視圖,該視圖已經為所有人提供了兩萬多款小巧而好用的擴展插件,這些擴展插件不僅都能省時省力,而且也能提高開發效率,如下圖所示:
  • 山地果園單軌運輸車的安裝使用和維護
    山地果園單軌運輸車的安裝使用和維護為降低山坡果園的勞力強度和省工、省力,單軌運輸車是目前使用較多的一種山地果園運輸車。現將其結構、安裝使用和維護保養的要求介紹如下。當使用彎曲機對準軌道內側時,若末端軌道不出現凸起,則可認為處於最小轉彎半徑內。三是軌道的最大傾斜角。不同生產企業的單軌車軌道的最大傾斜角是不一樣的, 但在急轉彎處要自然過渡, 並可用水平儀或角度儀進行確認。單軌運輸車安裝時要利用角度儀測量傾斜起點和終點的角度,如果能降低最大傾斜角, 則應儘量降低安裝。③軌道安裝。
  • macOS和Windows的使用區別之軟體安裝和卸載
    軟體下載安裝、查看使用、設置和卸載如何安裝軟體我好像從2000年開始接觸Windows系統,最早的時候還是win98,但是那個年代太久遠了安裝軟體比現在要複雜,直到後來就習慣了直接百度軟體名稱尋找能用的綠色版本進行下載安裝,但是現在win上其實也有自己的應用商店了,但是上架的軟體可能還不夠多也沒有直接百度下載的方便
  • 分水器安裝及使用
    我想不管是國外同行還是相關行業都比我國地暖行業更早接觸和應用塑料材料,所走過的彎路和經驗教訓比我們多,我們應吸取這些地暖安裝經驗和教訓,使我們少走彎路。環路過多將導致分集水器處的管道過於密集,不利於安裝。每個分支環路供回水管上均應設置銅製球閥等可關斷閥門。  2、地暖分水器安裝:對應安裝閥門  在分水器之前的供水連接管道上,順水流方向應安裝閥門、過濾器及洩水管。在分水器之前設置兩個閥門,主要是供清洗過濾器和更換或維修熱計量裝置時關閉用;設過濾器是為了防止雜質堵塞流量計和加熱管。
  • 【轉載】FrameMaker 插件 ChangeStyles 的安裝和使用
    將文件夾 ChangeStyles2 中的 ChangeStyleMenu.jsx 和子文件夾 ChangeStyle 拷貝到以下文件夾:C:\Program Files (x86)\Adobe\AdobeFrameMaker11\startup(將此路徑替換為你電腦上的路徑)安裝完畢。