view sonar-ant.xml @ 48:561ece0a8225

Return to using snapshot resolver to ensure ivy.xml file from dependency can be found and improve performance and tracbility. removed changing from chain. Modified local to be treated as local.
author smith@nwoca.org
date Thu, 16 Jun 2011 17:26:39 -0400
parents f1144aa0c01b
children 400f9d8bbf5b
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<project name="sonar-project-tasks" default="" basedir="."
         xmlns:ivy="antlib:fr.jayasoft.ivy.ant"
         xmlns:sonar="antlib:org.sonar.ant"
         xmlns:ssdt="http://www.ssdt-ohio.org/ant/common"
         xmlns:ssdtant="antlib:org.ssdt_ohio.tools.ant">

    <description>Sonar Ant tasks</description>

    <property           name="ssdt.sonar.jar.src"
                        value="http://ivy.ssdt.nwoca.org/repository/sonar/sonar-ant-task.jar"/>
    <ssdt:fetch         dest="${user.home.ant.lib}/sonar.jar"
                        src="${ssdt.sonar.jar.src}"/>
    <ssdt:import-ant    file="jacoco-ant.xml"/>

    <ssdtant:add-dependency target="init" depends="-sonar-init"/>

    <target name="-sonar-init">
        <if>
            <isset property="sonar.enabled"/>
            <then>
                <echo message="Sonar: Active"/>
            </then>
        </if>
        <if>
            <contains string="${ant.project.invoked-targets}" substring="sonar"/>
            <then>
                <property name="ignore.failing.tests" value="true"/>
            </then>
        </if>
        <property name="sonar.active" value="true"/>
    </target>

    <target name="-check-sonar">
        <property file="${ssdt.devel.kit}/sonar.properties"/>
        <property name="sonar.host.url" value="http://ssdt-web-10.nwoca.org:9000" />
        <property name="sonar.language" value="grvy"/>
        <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml"/>
    </target>

    <target name="sonar" depends="project.init,-check-sonar,ivy-info,coverage.xml" if="sonar.enabled">
        <fail unless="sonar.active" message="Sonar has not been initialized"/>
        <property name="sonar.projectname" value="${ivy.project.module}"/>
        <sonar:sonar
            workDir="${build.dir}/sonar"
            key="${ivy.project.organisation}:${sonar.projectname}"
            version="${project.version}"  >
            <sources>
                <path location="${src.dir}" />
            </sources>
            <property key="sonar.core.codeCoveragePlugin" value="jacoco"/>
            <property key="sonar.projectName" value="${sonar.projectname}"/>
            <property key="sonar.language" value="${sonar.language}" />
            <property key="sonar.java.source" value="${javac.source}" />
            <property key="sonar.java.target" value="${java.target}" />                     
            <property key="sonar.dynamicAnalysis" value="reuseReports" />
            <property key="sonar.surefire.reportsPath" value="${build.test.results.dir}"/>
            <property key="sonar.jacoco.reportPath" value="${jacoco.data.file}"/>
            <property key="sonar.jacoco.itReportPath" value="${jacoco.data.file}"/>
            <tests>
                <path location="${test.src.dir}" />
            </tests>
            <binaries>
                <path location="${build.classes.dir}" />
            </binaries>
        </sonar:sonar>
        <fail if="tests.failed" unless="sonar.use.build.breaker">Some tests failed; see details above. (sonar)</fail>
    </target>

</project>