After the Javaone conference in Moscow, i have found some free hours to play with Sonar. Here is a quick steps to start analyzing with ANT projects. Sonar provides Analyze with ANT document to play around with ANT, i have just modify some parts.
Here is it.
1) Download the Sonar Ant Task and put it in your ${ANT_HOME}/lib directory
2) Modify your ANT build.xml as follows:
Here is it.
1) Download the Sonar Ant Task and put it in your ${ANT_HOME}/lib directory
2) Modify your ANT build.xml as follows:
<?xml version = '1.0' encoding = 'windows-1251'?>
<project name="abc" default="build" basedir=".">
<!-- 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 path="E:\java\ant\1.8\apache-ant-1.8.0\lib" />
</taskdef>
<!-- Out-of-the-box those parameters are optional -->
<property name="sonar.jdbc.url" value="jdbc:oracle:thin:@xyz/sirius.xyz" />
<property name="sonar.jdbc.driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="sonar.jdbc.username" value="sonar" />
<property name="sonar.jdbc.password" value="sonar" />
<!-- Additional Sonar configuration (PMD need 1.5 when using annotations)-->
<property name="sonar.java.source" value="1.5"/>
<property name="sonar.java.target" value="1.5"/>
<!-- SERVER ON A REMOTE HOST -->
<property name="sonar.host.url" value="http://sunny.fors.ru/sonar" />
<property name="ear.file" value="konfiskat.ear"/>
<property file="build.properties"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="classes2.dir" value="classes"/>
<property name="deploy.dir" value="deploy"/>
<property name="doc.dir" value="docs"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="lib.dir.1" value="lib"/>
<property name="lib.dir.2" value="${lib.common.dir}"/>
<property name="lib.dir.3" value="common_lib"/>
<property name="lib.dir.4" value="${jdev.libs.dir}"/>
<property name="src.dir" value="src"/>
<property name="config.dir" value="${src.dir}/META-INF"/>
<property name="temp.dir" value="${src.dir}/temp"/>
<path id="classpath">
<fileset dir="${lib.dir.3}" includes="**/*.jar"/>
<fileset dir="${lib.dir.2}" includes="**/com.ibm.mq.jar, **/jboss-j2ee.jar"/>
<fileset dir="${lib.dir.4}" includes="**/*.jar"/>
</path>
<path id="srcpath">
<pathelement location="${src.dir}"/>
</path>
<!-- Add the target -->
<target name="sonar">
<!-- The workDir directory is used by Sonar to store temporary files -->
<sonar:sonar workDir="${temp.dir}" key="org.example:example" version="0.1-SNAPSHOT" xmlns:sonar="antlib:org.sonar.ant">
<!-- source directories (required) -->
<sources>
<path location="${src.dir}" />
</sources>
<!-- binaries directories, which contain for example the compiled Java bytecode (optional) -->
<binaries>
<path location="${classes.dir}" />
</binaries>
<!-- path to libraries (optional). These libraries are for example used by the Java Findbugs plugin -->
<libraries>
<path refid="classpath"/>
</libraries>
</sonar:sonar>
</target>
<target name="clean">
</target>
<target name="init" depends="clean"/>
<target name="compile" depends="init">
<mkdir dir="${classes.dir}"/>
<javac destdir="${classes.dir}"
classpathref="classpath"
debug="on">
<src refid="srcpath"/>
</javac>
</target>
<target name="doc" depends="compile">
</target>
<target name="build" depends="doc">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/toOAS.jar">
<manifest>
<attribute name="Class-Path" value="com.ibm.mq.jar xercesImpl.jar"/>
</manifest>
<metainf dir="${config.dir}">
<include name="ejb-jar.xml"/>
<include name="orion-ejb-jar.xml"/>
</metainf>
<fileset dir="${classes.dir}">
<include name="**/*.*"/>
</fileset>
<fileset dir="${src.dir}">
<include name="*.properties"/>
</fileset>
</jar>
<mkdir dir="${deploy.dir}"/>
<echo file="${jar.dir}/application.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?> <application> <display-name>ReadMQ</display-name> <module> <ejb>toOAS.jar</ejb> </module> </application>]]>
</echo>
<ear destfile="${deploy.dir}/${ear.file}"
appxml="${jar.dir}/application.xml">
<fileset dir="${jar.dir}" includes="*.jar"/>
<fileset dir="${lib.dir.2}">
<include name="com.ibm.mq.jar"/>
<include name="xercesImpl.jar"/>
</fileset>
</ear>
</target>
<target name="all" depends="build"/>
</project>
Comments