上一篇我們講述了Sonar和Maven的結合來達到代碼質量審查的效果,但是由于maven的學習成本高,并不是任何項目都適合,因此本篇我們講述一下如何通過Sonar和ant的結合來進行代碼質量審查。
目前來說,Sonar和Ant的集成沒有做到Sonar和Maven的集成這么好,因此在使用過程中需要多寫一些腳本。我們下面來介紹一下使用步驟吧:
1、下載Sonar并解壓到任何目錄,注意目錄中不允許有中文;
2、點擊bin\windows-x86-32\StartSonar.bat啟動Sonar;
3、下載一個ant插件:sonar-ant-task-1.1.jar,并存放到某個路徑,ant腳本需要訪問這個文件。
4、編寫一個ant腳本,如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="framework-client" default="sonar" basedir=".">
<property name="project.name" value="framework-client"/>
<property name="src.dir" value="${basedir}/src/main/java" />
<property name="lib.dir" value="${basedir}/lib"/>
<!-- Out-of-the-box those parameters are optional -->
<!-- EXAMPLE FOR MYSQL
<property name="sonar.jdbc.url"
value="jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8" />
<property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver" />
<property name="sonar.jdbc.username" value="sonar" />
<property name="sonar.jdbc.password" value="sonar" />
-->
<!-- SERVER ON A REMOTE HOST -->
<!--
<property key="sonar.host.url" value="http://myserver:1234" />
-->
<!-- Define the Sonar task if this hasn't been done in a common script -->
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath>
<pathelement location="${lib.dir}/sonar-ant-task-1.1.jar"/>
</classpath>
</taskdef>
<!-- Add the target -->
<target name="sonar">
<!-- list of mandatories Sonar properties -->
<property name="sonar.sources" value="${src.dir}" />
<property name="sonar.projectKey" value="org.example:${project.name}" />
<!-- list of optional Sonar properties -->
<!--
<property key="sonar.projectName" value="this value overrides the name defined in Ant root node" />
<property key="sonar.binaries" value="list of directories which contain for example the Java bytecode" />
<property key="sonar.tests" value="list of test source directories separated by a comma" />
<property key="sonar.libraries" value="list of paths to libraries separated by a comma (These libraries are for example used by the Sonar Findbugs plugin)" />
-->
<sonar:sonar key="${sonar.projectKey}" version="0.9" xmlns:sonar="antlib:org.sonar.ant"/>
</target>
</project>
5、運行ant腳本,看到build successfully的提示后,就可以訪問:http://localhost:9000/來查看代碼質量審查結果了。
上述是使用Sonar和ant最簡單的步驟,用了Sonar自帶的嵌入式數據庫Derby,以及standalone的應用服務器,當然也支持使用其它數據庫,比如:mysql,只要修改一下sonar.properties的配置文件,以及在ant腳本中配置一下連接數據庫的方式。另外也可以使用tomcat、jboss等應用服務器來發布Sonar應用,只要運行一下Sonar自帶的一個腳本:build-war.bat就可以了,這里不再詳述。