sonar代碼掃描實現(xiàn)(基于java-maven)

Sonar介紹

Sonar是一個用于代碼掃描檢測的開放平臺。可以實現(xiàn)對不同語言(java、python、php、C++、C#等等)的項目代碼進行分析,同時可以集成不同的測試工具、代碼分析工具,以及持續(xù)集成工具(jenkins)。

當前Sonar的最新版本為8.6,由于新版本不支持mysql數(shù)據(jù)庫了,所以本技術文檔實現(xiàn)以Sonar 6.7版本為演示版本。下載的鏈接地址如下:https://www.sonarqube.org/downloads/

Sonar安裝

1、安裝mysql數(shù)據(jù)庫,版本為5.6版本以上

因為Sonar支持不同的數(shù)據(jù)庫,本文檔以mysql為主,所以安裝Sonar 6.7版本前需要安裝mysql 5.6或者5.6以上的版本,低于5.6的版本,啟動Sonar時會報錯。關于Mysql數(shù)據(jù)庫的安裝,這里不做詳細說明。

接下來需要在mysql數(shù)據(jù)庫中新增一個名為sonar的數(shù)據(jù)庫即可(不需要創(chuàng)建數(shù)據(jù)庫表)。

2、下載Sonar壓縮包進行安裝

第一步:Sonar壓縮包可以在下載邊接中進行下載。下載完成后進行解壓縮操作,解壓縮操作完成后,將解壓縮的目錄移動到一個不包含有中文的目錄下。

第二步:找開Sonar壓縮目錄下conf中的sonar.properties文件(我的文件路徑為:D:\Program Files\sonarqube-6.7.7\conf),修改以下配置項并保存:

sonar.jdbc.username=root? ? ? ? # 連接Sonar數(shù)據(jù)庫名的配置

sonar.jdbc.password=123456? ?# 連接Sonar數(shù)據(jù)庫密碼的配置

sonar.jdbc.url=jdbc:mysql://localhost:53306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false? ?#連接Sonar數(shù)據(jù)庫的鏈接地址信息

sonar.web.port=9000? # 設置Sonar連接數(shù)據(jù)庫的端口

第三步:啟動Sonar服務:進入到Sonar的bin目錄下,在Dos命令行中輸入:? startsonar.bat即可啟動。如果能看到以下信息就說明是成功的。


啟動Sonar

第四步:訪問Sonar服務:

在瀏覽器中訪問:? ?http://localhost:9000即可,如果能顯示以下圖片就說明Sonar服務已經(jīng)完全配置OK(登錄的用戶名和密碼默認為? admin/admin)


Sonar訪問的服務頁面


3、通過Sonar來掃描代碼

第一步:由于掃描的是Java的代碼,所以需要安裝Maven,且需要在Maven的配置文件Settings.xml中增加以下配置項(此項增加在profiles節(jié)點中):

<profile>

? ? <id>sonar</id>

? ? <activation>

? ? ? ? <activeByDefault>true</activeByDefault>

? ? </activation>

? ? <properties>

? ? ? ? ?<sonar.jdbc.url>jdbc:mysql://localhost:53306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>

? ? ? ? ? ? ?<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>

? ? ? ? ? ? ?<sonar.jdbc.username>root</sonar.jdbc.username>

? ? ? ? ? ? ? <sonar.jdbc.password>123456</sonar.jdbc.password>

? ? ? ? <sonar.host.url>http://localhost:9000</sonar.host.url>

? ? </properties>

</profile>

第二步:針對Java的項目使用mvn進行編譯,然后再掃描:

執(zhí)行第一條命令: mvn? clean install

執(zhí)行第二條 命令: mvn? sonar:sonar

執(zhí)行完這兩條命令之后,就可以在Sonar的服務平臺web頁面查看掃描的結果。由于我所使用的代碼非常簡單,最終掃描結果沒有什么大的問題。


掃描結果展示
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容