Files
sailing-analytics/java/net.sf.marineapi/build.xml
T
Axel Uhl 11940730db whitespace / newline changes only
Change-Id: I78012cce87ec3f0701eec7bdde3b544e110fcded
2017-07-10 10:06:54 +02:00

195 lines
6.9 KiB
XML

<!--
build.xml - Java Marine API build script
Copyright (C) 2010-2011 Kimmo Tuukkanen
This file is part of Java Marine API.
<http://sourceforge.net/projects/marineapi/>
Java Marine API is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
Java Marine API is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
for more details.
You should have received a copy of the GNU Lesser General Public License
along with Java Marine API. If not, see <http://www.gnu.org/licenses/>.
$Revision$
-->
<project name="Java Marine API" default="build" basedir=".">
<target name="init">
<echo message="Java version: ${ant.java.version}" />
<tstamp>
<format property="build.id" pattern="yyyyMMddHHmmss" />
<format property="date" pattern="yyyy-MM-dd" />
<format property="year" pattern="yyyy" />
</tstamp>
<property file="build.properties" />
<property name="project.id" value="${app.id}" />
<property name="version" value="${app.version}" />
<property name="src.dir" value="src/main/java" />
<property name="tests.dir" value="src/test/java" />
<property name="resources.dir" value="src/main/resources" />
<property name="doc.dir" value="${resources.dir}/doc/" />
<property name="data.dir" value="src/test/resources/data/" />
<property name="build.dir" value="target/" />
<property name="build.dir.classes" value="${build.dir}/classes" />
<property name="build.dir.tests" value="${build.dir}/test-classes" />
<property name="build.dir.dist" value="${build.dir}/dist/" />
<property name="build.dir.javadoc" value="${build.dir}/javadoc/" />
<property name="build.dir.reports" value="${build.dir}/reports/" />
<property name="manifest.file" value="${build.dir}/MANIFEST.MF" />
<property name="jar.file" value="${build.dir}/${project.id}.jar" />
<property name="release.zip"
value="${build.dir}/${project.id}-${version}.zip" />
<property name="javadoc.title"
value="${app.name} v${version} (b${build.id})" />
<property name="javadoc.footer"
value="Copyright (C) 2010-${year} ${app.name} author(s). All Rights Reserved." />
</target>
<!-- compile project -->
<target name="compile-src" depends="init">
<mkdir dir="${build.dir.classes}" />
<javac destdir="${build.dir.classes}" srcdir="${src.dir}" debug="true"
includes="**/*.java" excludes="**/example/**" includeantruntime="true"
source="1.5" target="1.5" />
</target>
<!-- compile tests -->
<target name="compile-tests" depends="compile-src">
<mkdir dir="${build.dir.tests}" />
<javac destdir="${build.dir.tests}" debug="true" srcdir="${tests.dir}"
includeantruntime="true" excludes="**/example/*">
<classpath>
<pathelement path="${build.dir.classes}" />
</classpath>
</javac>
</target>
<!-- clean up -->
<target name="clean" depends="init" description="Cleans up the project">
<delete dir="${build.dir}" />
<delete dir="${builld.dir.release}" />
</target>
<!-- build project -->
<target name="build" depends="compile-src, jar"
description="Compiles the project and builds JAR archive" />
<!-- create jar package -->
<target name="jar" depends="compile-src">
<manifest file="${manifest.file}">
<attribute name="Specification-Title" value="${ant.project.name}" />
<attribute name="Specification-Version" value="${version}" />
<attribute name="Implementation-Title" value="net.sf.marineapi" />
<attribute name="Implementation-Version" value="b${build.id}" />
</manifest>
<jar destfile="${jar.file}" manifest="${manifest.file}">
<fileset dir="${build.dir.classes}" includes="**/*.class"
excludes="**/example/*" />
</jar>
</target>
<!-- run all unit tests -->
<target name="test" depends="compile-src, compile-tests"
description="Run all unit tests">
<mkdir dir="${build.dir.reports}" />
<copy todir="${build.dir.tests}/data">
<fileset dir="${data.dir}" />
</copy>
<junit fork="yes" maxmemory="512m" printsummary="true"
haltonfailure="false">
<formatter type="xml" />
<classpath>
<pathelement location="${build.dir.tests}" />
<pathelement location="${build.dir.classes}" />
</classpath>
<batchtest fork="no" todir="${build.dir.reports}"
errorProperty="tests.failed" failureProperty="tests.failed">
<fileset dir="${tests.dir}">
<include name="**/*Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${build.dir.reports}">
<fileset dir="${build.dir.reports}">
<include name="TEST-*.xml" />
</fileset>
<report format="noframes" todir="${build.dir.reports}" />
</junitreport>
<fail if="tests.failed" message="One or more unit tests failed" />
</target>
<!-- generate javadocs -->
<target name="javadoc" depends="init"
description="Generates the Javadoc documentation">
<mkdir dir="${build.dir.javadoc}" />
<javadoc sourcepath="${src.dir}" destdir="${build.dir.javadoc}"
private="false" windowtitle="${javadoc.title}"
bottom="${javadoc.footer}" breakiterator="true"
excludepackagenames="net.sf.marineapi.example">
<link href="http://download.oracle.com/javase/5/docs/api/" />
</javadoc>
</target>
<!-- build release package -->
<target name="dist" depends="clean, build, javadoc"
description="Builds a distribution package">
<mkdir dir="${build.dir.dist}" />
<mkdir dir="${build.dir.dist}/examples" />
<copy todir="${build.dir.dist}" file="${jar.file}" />
<copy todir="${build.dir.dist}/doc/">
<fileset dir="${doc.dir}" excludes="**/html/**" />
</copy>
<copy todir="${build.dir.dist}/doc/javadoc">
<fileset dir="${build.dir.javadoc}" />
</copy>
<copy todir="${build.dir.dist}/examples/src">
<fileset dir="${src.dir}" includes="**/example/*.java" />
<fileset dir="${build.dir}" includes="**/example/*.class" />
</copy>
<copy todir="${build.dir.dist}/examples/data">
<fileset dir="${data.dir}" includes="*.txt,*.log" />
</copy>
<replace token="@VERSION@" value="${version}"
file="${build.dir.dist}/doc/readme.txt" />
<replace token="@BUILD_ID@" value="${build.id}"
file="${build.dir.dist}/doc/readme.txt" />
<replace token="@YEAR@" value="${year}"
file="${build.dir.dist}/doc/readme.txt" />
<replace token="@VERSION@" value="${version}"
file="${build.dir.dist}/doc/release_notes.txt" />
<replace token="@BUILD_ID@" value="${build.id}"
file="${build.dir.dist}/doc/release_notes.txt" />
<replace token="@RELEASE_DATE@" value="${date}"
file="${build.dir.dist}/doc/release_notes.txt" />
<replace token="@YEAR@" value="${year}"
file="${build.dir.dist}/doc/release_notes.txt" />
<zip destfile="${release.zip}">
<zipfileset dir="${build.dir.dist}"
includes="**/*" prefix="${project.id}-${version}/"/>
</zip>
</target>
</project>