BuildScriptAnt

Aus SKM Wiki

Wechseln zu: Navigation, Suche

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 &#169; </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>
Ansichten
Persönliche Werkzeuge