|
Cobertura example source code file (build.xml)
The Cobertura build.xml source code
<?xml version="1.0" encoding="UTF-8"?>
<project name="cobertura" default="coverage" basedir="." xmlns:cobertura="antlib:net.sourceforge.cobertura.ant">
<description>
Cobertura - http://cobertura.sourceforge.net/
The copyright for this program is retained by its contributors
See the included COPYRIGHT file for a complete list of contributors
Cobertura is licensed under the GNU General Public License
Cobertura comes with ABSOLUTELY NO WARRANTY
</description>
<property file="build.properties" />
<!-- Import the Cobertura Ant Library -->
<property name="cobertura.local.library" location="antLibrary" />
<import file="${cobertura.local.library}/library.xml" />
<path id="base.path">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${jetty.dir}">
<include name="lib/servlet-api*.jar" />
</fileset>
</path>
<path id="cobertura.classpath">
<pathelement location="cobertura.jar" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<macrodef name="cobertura-taskdef">
<sequential>
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
<!--
This is probably a bug in Eclipse, but the Eclipse ant
editor seems to lock the classpath of the last taskdef,
so we do a taskdef of one of the core ant tasks so that
cobertura.jar does not become locked.
-->
<taskdef name="not-used" classname="org.apache.tools.ant.taskdefs.Delete">
<classpath>
<pathelement path="${java.class.path}" />
</classpath>
</taskdef>
</sequential>
</macrodef>
<target name="init">
<!-- Insert our version number in a file. -->
<filter token="version" value="${version}" />
<copy file="${etc.dir}/plugin.xml" todir="${build.dir}" filtering="true" overwrite="true" />
</target>
<target name="compile" depends="init">
<mkdir dir="${build.classes.dir}" />
<javac fork="true" srcdir="${src.dir}" destdir="${build.classes.dir}" debug="true" encoding="UTF-8"
target="${javac.target}">
<compilerarg value="-Xlint:unchecked" compiler="javac1.5"/>
<classpath location="${build.classes.dir}" />
<classpath refid="base.path" />
</javac>
<mkdir dir="${build.otherclasses.dir}" />
<javac fork="true" srcdir="${othersrc.dir}" destdir="${build.otherclasses.dir}" debug="true" encoding="UTF-8"
target="${javac.target}">
<compilerarg value="-Xlint:unchecked" compiler="javac1.5"/>
<classpath location="${build.classes.dir}" />
<classpath refid="base.path" />
</javac>
<mkdir dir="${build.functionalconditiontest.dir}" />
<javac fork="true" srcdir="${examples.functionalconditiontest.dir}" destdir="${build.functionalconditiontest.dir}" debug="true" encoding="UTF-8"
target="${javac.target}">
<compilerarg value="-Xlint:unchecked" compiler="javac1.5"/>
<classpath location="${build.classes.dir}" />
<classpath refid="base.path" />
</javac>
<!-- Copy jar resources (css, images, log4j property file, etc.) -->
<copy todir="${build.classes.dir}">
<fileset dir="${src.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="compile-tests" depends="init,compile,cobertura-groovy-init">
<mkdir dir="${build.test.classes.dir}" />
<cobertura:groovyc srcdir="${test.src.dir}" destdir="${build.test.classes.dir}" encoding="UTF-8">
<classpath location="${build.classes.dir}" />
<classpath location="${build.test.classes.dir}" />
<classpath refid="base.path" />
<classpath location="${build.otherclasses.dir}" />
<classpath location="${build.functionalconditiontest.dir}" />
<classpath path="${java.class.path}"/>
<javac debug="true" encoding="UTF-8" >
<compilerarg value="-Xlint:unchecked" compiler="javac1.5"/>
</javac>
</cobertura:groovyc>
<copy todir="${build.test.classes.dir}">
<fileset dir="${test.src.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="jar" depends="init,compile">
<mkdir dir="${build.dist.dir}" />
<!-- the standard jar for Cobertura -->
<jar jarfile="${basedir}/${ant.project.name}.jar" compress="true">
<fileset dir="${build.classes.dir}">
<include name="**/*.class" />
</fileset>
<fileset dir="${etc.dir}">
<include name="log4j.properties" />
<include name="tasks.properties" />
</fileset>
<fileset dir="${src.dir}">
<exclude name="**/*.java" />
<exclude name="**/package.html" />
</fileset>
<fileset dir="${basedir}">
<include name="COPYING" />
<include name="COPYRIGHT" />
<include name="README" />
</fileset>
<manifest>
<attribute name="Specification-Title" value="${description}"/>
<attribute name="Specification-Vendor" value="Cobertura"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Implementation-Title" value="${description}"/>
<attribute name="Implementation-Vendor" value="Cobertura"/>
<attribute name="Implementation-Vendor-Id" value="net.sourceforge.cobertura"/>
<attribute name="Implementation-Version" value="${version}"/>
</manifest>
</jar>
<!--
Eclipse needs the ANT tasks and the runtime of Cobertura to be split into
separate jars, otherwise lots of bad things happen in eclipse to do with
class loading.
-->
<mkdir dir="${build.dist.eclipse.dir}" />
<jar jarfile="${build.dist.eclipse.dir}/${ant.project.name}.jar">
<fileset dir="${build.classes.dir}">
<include name="net/sourceforge/cobertura/ant/**/*.class" />
</fileset>
<fileset dir="${etc.dir}">
<include name="tasks.properties" />
</fileset>
<manifest>
<attribute name="Specification-Title" value="${description}"/>
<attribute name="Specification-Vendor" value="Cobertura"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Implementation-Title" value="${description}"/>
<attribute name="Implementation-Vendor" value="Cobertura"/>
<attribute name="Implementation-Vendor-Id" value="net.sourceforge.cobertura"/>
<attribute name="Implementation-Version" value="${version}"/>
</manifest>
</jar>
<jar jarfile="${build.dist.eclipse.dir}/${ant.project.name}-main.jar">
<fileset dir="${build.classes.dir}">
<exclude name="net/sourceforge/cobertura/ant/**/*.class" />
</fileset>
<fileset dir="${etc.dir}">
<include name="log4j.properties" />
<include name="tasks.properties" />
</fileset>
<manifest>
<attribute name="Specification-Title" value="${description}"/>
<attribute name="Specification-Vendor" value="Cobertura"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Implementation-Title" value="${description}"/>
<attribute name="Implementation-Vendor" value="Cobertura"/>
<attribute name="Implementation-Vendor-Id" value="net.sourceforge.cobertura"/>
<attribute name="Implementation-Version" value="${version}"/>
</manifest>
</jar>
</target>
<target name="war" depends="cobertura-groovy-init">
<cobertura:groovy>
//load buildUtil definitions
evaluate(new File("buildUtil.groovy"))
buildWar(new File("coberturaFlush.war"))
</cobertura:groovy>
</target>
<target name="instrument" depends="jar">
<delete file="${basedir}/cobertura.ser" />
<delete file="${build.dir}/cobertura.ser" />
<cobertura-taskdef />
<cobertura-instrument datafile="${build.dir}/cobertura.ser" todir="${build.instrumented.dir}">
<fileset dir="${build.classes.dir}">
<include name="**/*.class" />
<exclude name="**/*Test.class" />
<exclude name="net/sourceforge/cobertura/javancss/**/*.class" />
</fileset>
<fileset dir="${build.otherclasses.dir}">
<include name="**/*.class" />
<exclude name="**/*Test.class" />
</fileset>
</cobertura-instrument>
</target>
<!--
This target is used when testing both instrumented and
non-instrumented code. The net.sourceforge.cobertura.datafile
sysproperty is only used if we're testing instrumented code.
-->
<target name="test" depends="compile-tests">
<delete dir="${build.reports.dir}/junit-xml" failonerror="false" />
<delete dir="${test.work.dir}" failonerror="false" />
<mkdir dir="${build.reports.dir}/junit-xml" />
<junit fork="true" forkmode="once" haltonfailure="false" failureProperty="test.failed" printsummary="true" timeout="900000">
<sysproperty key="net.sourceforge.cobertura.datafile" file="${build.dir}/cobertura.ser" />
<sysproperty key="basedir" value="${basedir}"/>
<jvmarg value="-Xmx512M" />
<!--
<jvmarg value="-Xdebug" />
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y" />
-->
<classpath location="${build.test.classes.dir}" />
<classpath location="${build.instrumented.dir}" />
<classpath location="${build.classes.dir}" />
<classpath location="${build.otherclasses.dir}" />
<classpath location="${etc.dir}" />
<classpath refid="base.path" />
<classpath refid="cobertura.common.local.library" />
<classpath>
<fileset dir="${java.home}/../">
<include name="lib/tools.jar"/>
</fileset>
</classpath>
<formatter type="xml" />
<formatter type="plain" usefile="false" />
<test name="${testcase}" todir="${build.reports.dir}/junit-xml" if="testcase" />
<batchtest todir="${build.reports.dir}/junit-xml" unless="testcase">
<fileset dir="${build.test.classes.dir}">
<include name="**/*Test.class" />
<exclude name="test/first/Test.class" />
<exclude name="test/condition/Test.class" />
</fileset>
</batchtest>
</junit>
<delete dir="${build.reports.dir}/junit-html" failonerror="false" />
<mkdir dir="${build.reports.dir}/junit-html" />
<junitreport todir="${build.reports.dir}/junit-html">
<fileset dir="${build.reports.dir}/junit-xml">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${build.reports.dir}/junit-html" />
</junitreport>
</target>
<target name="coverage-report">
<cobertura-taskdef />
<delete dir="${build.reports.dir}/coverage-html" failonerror="false" />
<mkdir dir="${build.reports.dir}/coverage-html" />
<cobertura-report datafile="${build.dir}/cobertura.ser"
destdir="${build.reports.dir}/coverage-html"
format="html"
>
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<fileset dir="${othersrc.dir}">
<include name="**/*.java" />
</fileset>
</cobertura-report>
<delete dir="${build.reports.dir}/coverage-xml" />
<mkdir dir="${build.reports.dir}/coverage-xml" />
<cobertura-report datafile="${build.dir}/cobertura.ser"
destdir="${build.reports.dir}/coverage-xml"
format="xml"
>
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<fileset dir="${othersrc.dir}">
<include name="**/*.java" />
</fileset>
</cobertura-report>
</target>
<!--
<target name="format">
<property name="dir.jalopy" value="${lib.dir}/jalopy" />
<taskdef name="jalopy" classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
<classpath>
<fileset dir="${dir.jalopy}">
<include name="*.jar" />
</fileset>
</classpath>
</taskdef>
<jalopy fileformat="unix"
convention="etc/jalopy.xml"
loglevel="info"
classpathref="base.path">
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<fileset dir="${test.src.dir}">
<include name="**/*.java" />
</fileset>
</jalopy>
</target>
-->
<target name="javadoc">
<delete dir="${build.api.dir}" />
<mkdir dir="${build.api.dir}" />
<javadoc access="private" author="true" breakiterator="true" destdir="${build.api.dir}" failonerror="true" encoding="UTF-8" linksource="true" serialwarn="false" version="true" windowtitle="Cobertura API">
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
<classpath location="${ant.home}/lib/ant.jar" />
<classpath refid="base.path" />
</javadoc>
</target>
<target name="dist" depends="jar,javadoc">
<!--
Copy the files needed for the binary jar to a clean directory
tree. The "binary" jar contains the minimum files needed to
use Cobertura.
-->
<copy-unix-scripts todir="${build.dist.dir}/package-bin/cobertura-${version}" />
<copy todir="${build.dist.dir}/package-bin/cobertura-${version}">
<fileset dir="${basedir}">
<include name="ChangeLog" />
<include name="cobertura-*.bat" />
<include name="COPYING" />
<include name="COPYRIGHT" />
<include name="README" />
<include name="lib/**" />
<!-- Exclude jars that are only used by the JUnit tests -->
<exclude name="lib/jaxen*" />
<exclude name="lib/jdom*" />
<exclude name="lib/junit*" />
<exclude name="lib/xerces/**" />
<exclude name="lib/xalan*" />
<include name="cobertura.jar" />
<include name="coberturaFlush.war" />
<include name="examples/basic/README" />
<include name="examples/basic/build.properties" />
<include name="examples/basic/*.xml" />
<include name="examples/basic/src/**" />
</fileset>
</copy>
<!--
Copy the files needed for the source jar to a clean directory
tree. The "source" jar contains everything needed to build
Cobertura.
-->
<copy-unix-scripts todir="${build.dist.dir}/package-src/cobertura-${version}" />
<copy todir="${build.dist.dir}/package-src/cobertura-${version}">
<fileset dir="${basedir}">
<include name="antLibrary/**" />
<include name="ChangeLog" />
<include name="cobertura-*.bat" />
<include name="COPYING" />
<include name="COPYRIGHT" />
<include name="README" />
<include name="build.properties" />
<include name="build.xml" />
<include name="etc/**" />
<include name="lib/**" />
<include name="resources/**" />
<include name="src/**" />
<include name="src-2/**" />
<include name="test/**" />
<include name="examples/*/README" />
<include name="examples/*/build.properties" />
<include name="examples/*/*.xml" />
<include name="examples/*/src/**" />
</fileset>
</copy>
<!-- Create bz2 files -->
<create-tar basedir="${build.dist.dir}/package-bin" destfile="${ant.project.name}-${version}-bin.tar.bz2" compression="bzip2"/>
<create-tar basedir="${build.dist.dir}/package-src" destfile="${ant.project.name}-${version}-src.tar.bz2" compression="bzip2"/>
<!-- Create gz files -->
<create-tar basedir="${build.dist.dir}/package-bin" destfile="${ant.project.name}-${version}-bin.tar.gz" compression="gzip"/>
<create-tar basedir="${build.dist.dir}/package-src" destfile="${ant.project.name}-${version}-src.tar.gz" compression="gzip"/>
<!-- Create zip files -->
<create-zip basedir="${build.dist.dir}/package-bin" destfile="${ant.project.name}-${version}-bin.zip"/>
<create-zip basedir="${build.dist.dir}/package-src" destfile="${ant.project.name}-${version}-src.zip"/>
<!-- Make an Eclipse plugin zip -->
<!-- |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.