sonarqube配置和使用

隨著公司業(yè)務(wù)發(fā)展,項目逐漸龐大,代碼也越來越多,而不同的開發(fā)人員在編碼習(xí)慣以及技術(shù)能力上也會有較大的差異,為了進行高質(zhì)量的項目代碼管理,并及時的對代碼進行分析并給出合理的解決方案已經(jīng)成為必需。

SonarQube 是一個開源的代碼質(zhì)量管理系統(tǒng),它可以通過使用插件與 eclipse 集成,從而實現(xiàn)了對代碼的質(zhì)量的全面自動化分析和管理。SonarQube 并不是簡單地將各種質(zhì)量檢測工具的結(jié)果(例如 FindBugs,PMD 等)直接展現(xiàn)給客戶,而是通過不同的插件算法來對這些結(jié)果進行再加工,最終以量化的方式來衡量代碼質(zhì)量,從而方便地對不同規(guī)模和種類的工程進行相應(yīng)的代碼質(zhì)量管理。

部署步驟如下:

1、 下載sonarqube-7.1,地址為:https://www.sonarqube.org/downloads/

2、 解壓sonarqube-7.1.zip,根據(jù)操作系統(tǒng)的版本啟動sonarqube,這里的環(huán)境為啟動的腳本為:sonarqube-7.1\bin\windows-x86-32\StartSonar.bat;

注意:jdk的版本需要jdk8,需要設(shè)置環(huán)境變量JAVA_HOME,并將JAVA_HOME/bin目錄加入到系統(tǒng)環(huán)境的PATH

3、 啟動后采用http://127.0.0.1:9000/訪問系統(tǒng),默認的用戶和密碼為admin/admin.

4、 建一個project,如下

[圖片上傳失敗...(image-8bc2a6-1526545610440)]

5、 對于采用Maven的工程比較簡單,進行如下設(shè)置,修改文件, 文件路徑為$MAVEN_HOME/conf或者~/.m2修改得內(nèi)容如下:

<settings>

<pluginGroups>

<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>

</pluginGroups>

<profiles>

<profile>

<id>sonar</id>

<activation>

<activeByDefault>true</activeByDefault>

</activation>

<properties>

``

<sonar.host.url>[http://ocalhost:9000](http://ocalhost:9000)</sonar.host.url>

</properties>

</profile>

</profiles>

</settings>

6、 在需要分析的項目下面執(zhí)行:mvn clean verify sonar:sonar;需要注意的創(chuàng)建的project必須和我們需要分析的項目工程名字保持一致,否則分析的數(shù)據(jù)無法導(dǎo)入到sonarqube中;

如下在分析的過程中提示內(nèi)容溢出,請設(shè)置:

set MAVEN_OPTS=-Xmx512m linux下面執(zhí)行export MAVEN_OPTS="-Xmx512m"

如果需要排除部分目錄可以進行設(shè)置:

maven的pom.xml文件里面加入sonar.exclusions指明哪些自動生成代碼的文件夾不需要分析。

具體的匹配規(guī)則可以參考sonar的官方文檔,非常簡單 (docs.sonarqube.org )。注意使用maven項目時匹配的文件夾基礎(chǔ)是project base dir。

Wildcard Matches

? 匹配單個字符 ** 匹配0個或多個文件夾 * 匹配0個或多個字符

在pom.xml文件中添加以下事列代碼即可,

<properties>
<sonar.exclusions>
src/main/java/com/.../domain/model//,
src/main/java/com/.../exchange/
/
</sonar.exclusions>
</properties>

7、 分析結(jié)束后即可在http://127.0.0.1:9000/projects中查看到分析結(jié)果,如下:

[圖片上傳中...(image.png-412ca1-1526545463323-0)]

進一步查看詳細的信息:

[圖片上傳失敗...(image-ab5cb2-1526545385966)]

具體到代碼的錯誤信息:

[圖片上傳失敗...(image-155cc7-1526545385966)]

代碼統(tǒng)計信息:

[圖片上傳失敗...(image-9cf362-1526545385966)]

8、 其它的類型工程請參照https://docs.sonarqube.org/display/SCAN進行設(shè)置;

[圖片上傳失敗...(image-63005-1526545385966)]

9、 如果是一個普通的工程就需要下載sonar-scanner,這里下載的地址為:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.1.0.1141.zip

10、 解壓文件,并將sonar-scanner-3.1.0.1141\bin目錄加入的系統(tǒng)的PATH中

11、 在需要分析的工程目錄下面創(chuàng)建一個sonar-project.properties文件,內(nèi)容如下:

must be unique in a given SonarQube instance

sonar.projectKey=pcsys

this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.

sonar.projectName=pcsys

sonar.projectVersion=1.0

Path is relative to the sonar-project.properties file. Replace "" by "/" on Windows.

This property is optional if sonar.modules is set.

sonar.sources=.

Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

Language

sonar.language=java

sonar.java.binaries=build/classes

sonar.java.binaries=.

排除掉的目錄

sonar.exclusions=./WebRoot/plug-in

執(zhí)行sonar-scanner,如果提示內(nèi)存溢出,執(zhí)行

set SONAR_SCANNER_OPTS=-Xmx512m linux系統(tǒng)執(zhí)行export SONAR_SCANNER_OPTS="-Xmx512m"

12、 最新的java分析插件版本為:sonar-java-plugin-5.3.0.13828.jar,分析工程的時候有問題,會提示Please provide compiled classes of your project with sonar.java.binaries property

解決方法為下載老版本的jar文件,這里下載的文件為:https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-4.10.0.10260.jar

下載完成后,重命名sonarqube-7.1\extensions\plugins目錄下的sonar-java-plugin-5.3.0.13828.jar,并將剛下載的文件復(fù)制到此目錄下面

[圖片上傳失敗...(image-256f18-1526545385966)]

13、 執(zhí)行完成后結(jié)果如下:

總攬

[圖片上傳失敗...(image-3ff97c-1526545385966)]

詳細的代碼分析:

[圖片上傳失敗...(image-826284-1526545385966)]

多次設(shè)定不同版本的執(zhí)行結(jié)果對比分析:

[圖片上傳失敗...(image-d1ae09-1526545385966)]

14、

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

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

  • 雨霖鈴.晨昏秋雨 晨昏秋雨, 鳥棲山靜, 半繞輕霧。 車馳速惹風(fēng)涌, 呼呼虐面, 身寒無語。 轉(zhuǎn)角頻傳響訊, 急停...
    寺咀山主人閱讀 339評論 2 7
  • 傍晚時分,張司令和王金花一行浩浩蕩蕩來到楊府。此時楊府華燈初上,人聲鼎沸,好不熱鬧。紅玫瑰特意喬扮一番,可謂光采照...
    六月孺子牛閱讀 382評論 3 6
  • 年底將至,小伙伴們準(zhǔn)備好回答七大姑八大姨的各種問題了嗎? 年底發(fā)了多少年終獎?。?房子買了嗎? 什么,還沒有對象?...
    快跑小飛俠閱讀 586評論 6 2

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