|
如何在Hudson上集成sonar來實現(xiàn)代碼質量控制 Sonar是一款集成了PMD,checkstyle, FindBugs等代碼質量管理功能的開源軟件。http://www./ 可以下載最新的版本。由于sonar是基于Maven 2實現(xiàn)構建的,所以你還需要從http://maven./download.html 下載Maven 2。把sonar和Maven 2解壓縮,然后設置MAVEN_HOME以及PATH加$MAVEN_HOME/bin??梢詧?zhí)行mvn –version來檢查Maven的安裝是否正確。
Sonar的配置主要改為mysql來實現(xiàn)數(shù)據(jù)持久化。編輯SONAR_HOME/conf/sonar.properties文件,注釋掉embedded database段(derby),取消注釋MySQL。
Maven 2的配置從前一個版本升級后得到極大的簡化,基本上可以看成3層結構,$MAVEN_HOME/settings.xml為全局配置,~/.m2/settings.xml為用戶級配置,項目下pom.xml為項目級配置。為了sonar的運行我們需要在settings.xml配置兩項,一個是LocalRepository,另一個是增加profile為sonar。Sonar的Profile舉例如下(包含在profiles節(jié)點下, sonar server可以跟hudson server一致):
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url> jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://SONAR_SERVER:9000</sonar.host.url>
</properties>
</profile>
以上基本完成了Sonar和Maven的安裝和配置。接下來我們需要增加我們的管理對象開發(fā)項目了。因為我的Java項目是Web application,所以用如下命令創(chuàng)建:
mvn archetype:create -DgroupId=com.company.projectShortName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-webapp
Maven會在當前目錄創(chuàng)建一個標準代碼目錄結構。
刪除projectName/src/main/java, projectName/src/main/webapp/WEB-INF/lib, projectName/src/test, 然后創(chuàng)建相同鏈接到你項目真實的java/src, WEB-INF/lib, java/test。
編輯projectName/pom.xml,在build標簽下增加
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src/main/webapp/WEB-INF/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
以上插件為了解決Maven默認用1.3來編譯導致大量泛型類無法通過編譯的問題,強制用jdk 1.5即可支持泛型類。另外把webapp的組件jar目錄設置好。
這樣就完成了所有Sonar和Maven對項目的配置了?,F(xiàn)在可以進入項目Maven目錄,執(zhí)行mvn sonar:sonar來分析代碼了。
不過我們的目標是在hudson系統(tǒng)中集成sonar。所以我們還有幾個步驟需要完成。
首先把hudson的sonar插件從http:// hudson-ci.org/download/plugins/sonar下載得到。添加到hudson服務器的$JBOSS_HOME/server/all/deploy/hudson.war/WEB-INF/plugins然后redeploy hudson即可。登陸hudson界面,在系統(tǒng)配置中針對sonar節(jié)增加sonar,配置server URL, database url, database login, database password, database driver跟Maven 2的settings.xml中sonar profile一致即可。勾選上“用戶手工啟動”。
然后在項目的配置頁面里,勾選上Sonar,把Maven version, Root POM, MAVEN_OPTS配置好即可。其中Maven version為全局配置的版本,Root POM就是maven create的projectName/pom.xml(需要全路徑,因為與hudson任務的工作空間不同),MAVEN_OPTS配置為-Xmx512m -XX:MaxPermSize=256m以防止內存錯誤。
喝杯茶,等著hudson的構建結果吧。你可以找到sonar的分析報告,關于重復代碼,危險代碼,混亂代碼等都有哦。至于代碼規(guī)則等,則需要你根據(jù)公司/項目的規(guī)范進行相應的增刪了。 本文出自 “守望者的技術日記和六..” 博客,請務必保留此出處http://dannyyuan.blog.51cto.com/212520/404296 |
|
|
來自: bananarlily > 《IT》