随着項目的展開,代碼的品質需要定期的檢查,除了Code Review外,使用工具進行定期的檢查規範等很重要,Sonar就是這樣一個平台。
Sonar是一個開源代碼品質管理平台。以下是它的主要特點:
代碼覆寫:通過單元測試,将會顯示哪行代碼被選中
改善編碼規則
搜尋編碼規則:按照名字,插件,激活級别和類别進行查詢
項目搜尋:按照項目的名字進行查詢
對比資料:比較同一張表中的任何測量的趨勢
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuMWO2AzMlhDZlVmM0czM4IjYyAzM3ImNiVzY2M2M2EDOfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
項目使用maven管理比較友善使用
2、項目目錄下放置如下的檔案sonar-project.properties
# required metadata
sonar.projectKey=com.demo:mydemo
sonar.projectName=demo
sonar.projectVersion=1.0
# path to source directories (required)
sources=src/main/java
# path to test source directories (optional)
#tests=testDir1,testDir2
# path to project binaries (optional), for example directory of Java bytecode
#binaries=binDir
# path to project libraries (optional)
libraries=junit.jar
#Uncomment those lines if some features of java 5 or java 6 like annotations, enum, ...
#are used in the source code to be analysed
#sonar.java.source=1.5
#sonar.java.target=1.5
#Uncomment this line to analyse a project which is not a java project.
#The value of the property must be the key of the language.
#sonar.language=cobol
# advanced parameters
#my.property=value
3、項目目錄下執行sonar-runner,此時進行相應各種處理
可以看到項目的代碼量、類分布等等各項名額,這個軟體內建了很多的Java的一些開源的分析、測試等工具,是以具體的功能很豐富
如果在Eclipse中使用,參考如下的内容安裝即可
<a href="http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse">http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse</a>
Update site
<a href="http://dist.sonar-ide.codehaus.org/eclipse/">http://dist.sonar-ide.codehaus.org/eclipse/</a>
Eclipse Marketplace
<a href="http://marketplace.eclipse.org/content/sonar">http://marketplace.eclipse.org/content/sonar</a>
<a href="http://nemo.sonarsource.org/">http://nemo.sonarsource.org/</a>
<a href="http://docs.codehaus.org/display/SONAR/1.+Install">http://docs.codehaus.org/display/SONAR/1.+Install</a>
Eclipse增強包括可以在本地進行分析
Sonar作為一個平台,可以在服務端運作,并記錄每次的品質情況,是以可以進行項目的代碼品質的跟蹤
比如Csharp的分析,就內建了Fxcop StyleCop等各種工具,不過相對java來說,工具還是少一些,和VS Team foundation想必,對于代碼的管理有很多優點,實際項目中可以作為這個tfs的補充使用【可以量化的看到代碼的演變曆史】