BuildScriptAnt
Aus SKM Wiki
Das Ant Script verwendet als Import noch die common.xml Datei.
<project name="jagosi" default="junit" basedir="."> <description> </description> <property name="Name" value="Java GForge SOAP Interface"/> <property name="ShortName" value="jagosi"/> <import file="./common.xml" /> <path id="classpath.build"> <fileset dir="${dir.lib}"> <include name="**/*.jar"/> </fileset> </path> <target name="init" description="Create all needed directories"> <mkdir dir="${dir.build}" /> <mkdir dir="${dir.build.classes}" /> <mkdir dir="${dir.build.testclasses}" /> <mkdir dir="${dir.dist}" /> <mkdir dir="${dir.dist.classes}" /> <mkdir dir="${dir.dist.docs}" /> <mkdir dir="${dir.reports}" /> <mkdir dir="${dir.reports.test}" /> <mkdir dir="${dir.reports.test.html}" /> </target> <target name="clean" description="clean up" > <delete dir="${dir.build}"/> <delete dir="${dir.dist}"/> <delete dir="${dir.reports}"/> </target> <target name="compile" depends="init" description="compile the source " > <javac srcdir="${dir.src.main.java}" destdir="${dir.build.classes}" debug="yes"> <classpath refid="classpath.build"/> </javac> </target> <target name="compile-test" depends="init" description="compile the source " > <javac srcdir="${dir.src.test.java}" destdir="${dir.build.testclasses}" debug="yes"> <classpath refid="classpath.build"/> <classpath location="${dir.build.classes}"/> </javac> </target> <target name="compile-dist" depends="init" description="compile the source " > <!-- Compile the java code from ${src.dir} into ${build.dir} --> <javac srcdir="${dir.src.main.java}" destdir="${dir.dist.classes}"> <classpath refid="classpath.build"/> </javac> </target> <target name="copy-resources" depends="init"> </target> <target name="copy-test-resources" depends="init"> <copy todir="${dir.build.testclasses}"> <fileset dir="${dir.src.test.resources}"> <include name="**/*"/> </fileset> </copy> </target> <target name="dist" depends="compile-dist" description="generate the distribution" > <jar jarfile="${dir.dist}/${ShortName}-${version}.jar"> <manifest> <attribute name="Built-By" value="SoftwareEntwicklung Beratung Schulung" /> <attribute name="Specification-Title" value="JaGoSI" /> <attribute name="Specification-Version" value="${software.major}.${software.minor}.${software.patch}" /> <attribute name="Specification-Vendor" value="SoftwareEntwicklung Beratung Schulung" /> <attribute name="Implementation-Title" value="JaGoSI" /> <attribute name="Implementation-Vendor" value="SoftwareEntwicklung Beratung Schulung" /> <attribute name="Implementation-URL" value="http://jagosi.soebes.de" /> </manifest> <zipfileset dir="${dir.dist.classes}" prefix=""> <include name="**/*.class" /> </zipfileset> <zipfileset dir="${dir.src.main.resources}" prefix=""> <include name="META-INF/services/org.apache.axis.components.net.SecureSocketFactory" /> <include name="release.properties" /> <include name="poc.properties" /> </zipfileset> </jar> </target> <target name="instrument" description="Add jcoverage instrumentation"> <!-- instrument the application classes, writing the instrumented classes into ${build.instrumented.dir}. --> <instrument todir="${build.instrumented.dir}"> <!-- Note that the following line causes instrument to ignore any source line containing a reference to log4j, for the purposes of coverage reporting. --> <ignore regex="org.apache.log4j.*"/> <fileset dir="${build.classes.dir}"> <!-- instrument all the application classes, but don't instrument the test classes. --> <include name="**/*.class"/> <exclude name="**/*Test.class"/> </fileset> </instrument> </target> <target name="coverage" depends="init, compile, instrument, junit" description="HTML and XML coverage reports can be found in build/coverage"> <report srcdir="${src.dir}" destdir="${reports.coverage.dir}"/> <report srcdir="${src.dir}" destdir="${reports.coverage.dir}" format="xml"/> <echo> jcoverage reports have been generated. The HTML report is ${build.coverage.dir}/index.html The XML report is ${build.coverage.dir}/coverage.xml </echo> </target> <!-- This is only a aggregation Target --> <target name="documentation" description="Documentation Task"> <javadoc destdir="${dist.docs.dir}" author="true" version="true" use="true" private="true" windowtitle="${Name} - ${ShortName} Version ${version}"> <classpath refid="jcoverage"/> <fileset dir="${src.dir}" defaultexcludes="yes" > <exclude name="**/*Test.java" /> <exclude name="**/AllTests*.java" /> </fileset> <doctitle><![CDATA[<h1>${Name} - ${ShortName} Version ${version}</h1>]]></doctitle> <bottom><![CDATA[<i>Copyright © </a></i>]]></bottom> <tag name="todo" scope="all" description="To do:" /> <!-- <group title="HiCon" packages="*"/> --> <link offline="true" href="http://java.sun.com/products/jdk/1.2/docs/api/" packagelistLoc="/tmp"/> <link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/> </javadoc> </target> <target name="junit" depends="compile,compile-test,copy-test-resources" description="Run all JUnit Test incl. Reporting JUnitReport"> <junit printsummary="yes" haltonfailure="no"> <classpath refid="classpath.build"/> <classpath location="${dir.build.classes}"/> <classpath location="${dir.build.testclasses}"/> <formatter type="xml"/> <formatter type="brief"/> <batchtest fork="yes" todir="${dir.reports.test}"> <fileset dir="${dir.src.test.java}"> <include name="**/*Test.java"/> </fileset> </batchtest> </junit> <junitreport todir="${dir.reports.test}"> <fileset dir="${dir.reports.test}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${dir.reports.test.html}"/> </junitreport> </target> </project>
