mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-19 20:25:31 +00:00
195 lines
6.9 KiB
XML
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>
|