vaadin-framework/buildhelpers/build.xml
Artur Signell 3f46830b28 Fix release build
Change-Id: Ie915aeb31aff7a0c2f655ad9b54e00a582770984
2015-01-15 10:33:19 +02:00

141 lines
5.8 KiB
XML

<?xml version="1.0"?>
<project name="vaadin-buildhelpers" basedir="." default="publish-local"
xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
Compiles build helpers used when building other
modules.
</description>
<include file="../build.xml" as="vaadin" />
<include file="../common.xml" as="common" />
<property name="module.name" value="vaadin-buildhelpers" />
<property name="module.symbolic" value="com.vaadin.buildhelpers" />
<property name="result.dir" location="result" />
<path id="classpath.compile.custom" />
<property name="filtered.webcontent.dir" location="${result.dir}/WebContent" />
<property name="release-notes-tickets-file" location="${result.dir}/release-notes-tickets.html" />
<property name="release-notes-authors-file" location="${result.dir}/release-notes-authors.html" />
<target name="jar" depends="filter.webcontent">
<antcall target="common.compile" />
<property name="result.jar"
location="${result.dir}/lib/${module.name}-${vaadin.version}.jar" />
<property name="classes" location="${result.dir}/classes" />
<property name="src" location="${result.dir}/../src" />
<jar destfile="${result.jar}" duplicate="fail" index="true">
<fileset dir="${classes}" excludes="${classes.exclude}"
erroronmissingdir="false" />
<fileset dir="${filtered.webcontent.dir}/.."
includes="WebContent/**" />
</jar>
</target>
<target name="publish-local" depends="jar">
<antcall target="common.publish-local" />
</target>
<target name="clean">
<antcall target="common.clean" />
</target>
<target name="filter.webcontent"
depends="fetch-release-notes-tickets,fetch-release-notes-authors">
<!-- Running without build.release-notes will cause an error, which
is ignored -->
<loadfile property="release-notes-tickets" srcFile="${release-notes-tickets-file}"
failonerror="false" />
<loadfile property="release-notes-authors" srcFile="${release-notes-authors-file}"
failonerror="false" />
<delete dir="${filtered.webcontent.dir}" />
<copy todir="${filtered.webcontent.dir}">
<fileset dir="${vaadin.basedir}/WebContent">
<include name="img/**" />
</fileset>
</copy>
<copy todir="${filtered.webcontent.dir}">
<fileset dir="${vaadin.basedir}/WebContent">
<patternset>
<include name="release-notes.html" />
<include name="license.html" />
<include name="licenses/**" />
<include name="css/**" />
</patternset>
</fileset>
<filterchain>
<expandproperties />
<replacetokens begintoken="@" endtoken="@">
<token key="version" value="${vaadin.version}" />
</replacetokens>
<replacetokens begintoken="@" endtoken="@">
<token key="version-minor"
value="${vaadin.version.major}.${vaadin.version.minor}" />
</replacetokens>
<replacetokens begintoken="@" endtoken="@">
<token key="builddate" value="${build.date}" />
</replacetokens>
<replacetokens begintoken="@" endtoken="@">
<token key="release-notes-tickets" value="${release-notes-tickets}" />
</replacetokens>
<replacetokens begintoken="@" endtoken="@">
<token key="release-notes-authors" value="${release-notes-authors}" />
</replacetokens>
</filterchain>
</copy>
</target>
<target name="fetch-release-notes-tickets" if="build.release-notes">
<mkdir dir="${filtered.webcontent.dir}" />
<antcall target="exec-buildhelper">
<param name="main.class"
value="com.vaadin.buildhelpers.FetchReleaseNotesTickets" />
<param name="output" location="${release-notes-tickets-file}" />
</antcall>
</target>
<target name="fetch-release-notes-authors" if="build.release-notes">
<copy file="src/com/vaadin/buildhelpers/authormap.properties"
tofile="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
<mkdir dir="${filtered.webcontent.dir}" />
<antcall target="exec-buildhelper">
<param name="main.class"
value="com.vaadin.buildhelpers.FetchReleaseNotesAuthors" />
<param name="output" location="${release-notes-authors-file}" />
</antcall>
<delete
file="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
</target>
<target name="exec-buildhelper">
<antcall target="common.compile" />
<fail unless="main.class" message="No main class given in 'main.class'" />
<fail unless="output" message="No output file given in 'output'" />
<ivy:resolve log="download-only" conf="build" />
<ivy:cachepath pathid="deps" />
<java classname="${main.class}" output="${output}"
failonerror="true" fork="yes">
<classpath>
<pathelement location="${result.dir}/classes" />
</classpath>
<classpath refid="deps" />
<jvmarg value="-Dvaadin.version=${vaadin.version}" />
</java>
</target>
<target name="checkstyle">
<antcall target="common.checkstyle">
<param name="cs.src" location="src" />
</antcall>
</target>
<target name="test" depends="checkstyle">
<!--<antcall target="common.test.run" /> -->
<echo>WHAT? No JUnit tests for ${module.name}!</echo>
</target>
</project>