233 lines
7.7 KiB
XML
233 lines
7.7 KiB
XML
<!--
|
|
|
|
Hibernate Annotations ANT build script.
|
|
|
|
You need JDK 5.0 installed to build Hibernate Annotations.
|
|
|
|
-->
|
|
|
|
<project name="Hibernate Annotations" default="dist" basedir="."
|
|
xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
|
|
|
|
<!-- Give user a chance to override without editing this file
|
|
(and without typing -D each time it compiles it) -->
|
|
<property file="build.properties"/>
|
|
<property file="${user.home}/.ant.properties"/>
|
|
|
|
<!-- Name of project and version, used to create filenames -->
|
|
<property name="Name" value="Hibernate Annotations"/>
|
|
<property name="name" value="hibernate-annotations"/>
|
|
<property name="version" value="3.4.0.GA"/>
|
|
<property name="javadoc.packagenames" value="org.hibernate.*"/>
|
|
<property name="jdbc.dir" value="jdbc"/>
|
|
<property name="copy.test" value="true"/>
|
|
<property name="javac.source" value="1.5"/>
|
|
<property name="javac.target" value="1.5"/>
|
|
<property name="common.dir" value="${basedir}"/>
|
|
<property name="ivy.dep.dir" value="${basedir}/build/lib"/>
|
|
|
|
<available property="jpa-present" file="${basedir}/../jpa-api" type="dir"/>
|
|
<property name="jpa-javadoc.dir" value="${dist.doc.dir}/jpa-api"/>
|
|
|
|
<import file="${common.dir}/common-build.xml"/>
|
|
|
|
<path id="lib.moduleclass.path">
|
|
<fileset dir="${ivy.dep.dir}/core">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
<fileset dir="${common-build.basedir}/lib/build">
|
|
<!-- ${build.lib.dir} fails in reference doc build -->
|
|
<include name="junitext-*.jar"/>
|
|
</fileset>
|
|
</path>
|
|
|
|
<path id="junit.moduleclasspath">
|
|
<pathelement location="${src.dir}"/>
|
|
<pathelement location="${test.dir}"/>
|
|
<fileset dir="${jdbc.dir}">
|
|
<include name="**/*.jar"/>
|
|
<include name="**/*.zip"/>
|
|
</fileset>
|
|
<fileset dir="${ivy.dep.dir}/test">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
</path>
|
|
|
|
<target name="init">
|
|
<antcall target="common-build.init"/>
|
|
<tstamp>
|
|
<format property="now" pattern="yyyyMMddhhmmss"/>
|
|
</tstamp>
|
|
<mkdir dir="${ivy.dep.dir}/core"/>
|
|
<mkdir dir="${ivy.dep.dir}/test"/>
|
|
<ivy:configure file="${ivy.jar.dir}/ivyconf.xml"/>
|
|
</target>
|
|
|
|
<target name="compile" depends="init,get.deps.core"
|
|
description="Compile the Java source code">
|
|
|
|
<available classname="org.eclipse.core.launcher.Main"
|
|
property="build.compiler"
|
|
value="org.eclipse.jdt.core.JDTCompilerAdapter"
|
|
classpath="${java.class.path}"/>
|
|
<javac srcdir="${src.dir}" destdir="${classes.dir}"
|
|
classpathref="lib.class.path" debug="${javac.debug}"
|
|
optimize="${javac.optimize}" nowarn="on" source="${javac.source}"
|
|
target="${javac.target}">
|
|
<src path="${src.dir}"/>
|
|
</javac>
|
|
<copy todir="${classes.dir}">
|
|
<fileset dir="${src.dir}">
|
|
<include name="**/resources/*.properties"/>
|
|
<include name="**/*.xsd"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="compiletest" depends="compile,get.deps.test"
|
|
description="Compile the tests">
|
|
<available classname="org.eclipse.core.launcher.Main"
|
|
property="build.compiler"
|
|
value="org.eclipse.jdt.core.JDTCompilerAdapter"
|
|
classpath="${java.class.path}"/>
|
|
<javac destdir="${testclasses.dir}" classpathref="junit.classpath"
|
|
debug="${javac.debug}" optimize="${javac.optimize}" nowarn="on"
|
|
source="${javac.source}" target="${javac.target}">
|
|
<src refid="testsrc.path"/>
|
|
</javac>
|
|
</target>
|
|
|
|
<target name="jar" depends="compile"
|
|
description="Build the distribution .jar file">
|
|
<mkdir dir="${classes.dir}/META-INF"/>
|
|
<manifest file="${classes.dir}/META-INF/MANIFEST.MF">
|
|
<attribute name="Implementation-Title" value="${Name}"/>
|
|
<attribute name="Implementation-Version" value="${version}"/>
|
|
<attribute name="Implementation-Vendor" value="hibernate.org"/>
|
|
<attribute name="Implementation-Vendor-Id" value="hibernate.org"/>
|
|
<attribute name="Implementation-URL"
|
|
value="http://annotations.hibernate.org"/>
|
|
<attribute name="Specification-Title" value="Java Persistence"/>
|
|
<attribute name="Specification-Version" value="1.0"/>
|
|
<attribute name="Specification-Vendor" value="jcp.org"/>
|
|
</manifest>
|
|
<antcall target="common-build.jar"/>
|
|
<delete file="${dist.dir}/ivy.xml"/>
|
|
<!-- delete last produced ivy file to be sure a new one will be generated -->
|
|
<ivy:resolve conf="default"/>
|
|
<ivy:publish artifactspattern="${dist.dir}/[artifact].[ext]"
|
|
resolver="local" pubrevision="latest" pubdate="${now}"
|
|
status="integration"/>
|
|
</target>
|
|
|
|
<target name="junit" depends="compiletest">
|
|
<for list="${targetdb}" param="db">
|
|
<sequential>
|
|
<antcall target="test-resources">
|
|
<param name="db" value="@{db}"/>
|
|
</antcall>
|
|
<mkdir dir="${testreports.dir}/@{db}"/>
|
|
<echo>Running against db: @{db}</echo>
|
|
<junit printsummary="yes" haltonfailure="yes" forkmode="once">
|
|
<classpath refid="junit.classpath"/>
|
|
<formatter type="plain"/>
|
|
<formatter type="xml"/>
|
|
<batchtest fork="yes" todir="${testreports.dir}/@{db}"
|
|
haltonfailure="no">
|
|
<fileset refid="junit.batchtestset"/>
|
|
</batchtest>
|
|
</junit>
|
|
</sequential>
|
|
</for>
|
|
</target>
|
|
|
|
<!-- Run a single unit test. -->
|
|
<target name="junitsingle" depends="compiletest"
|
|
description="Run a single test suite (requires testname and jdbc.driver properties)">
|
|
<for list="${targetdb}" param="db">
|
|
<sequential>
|
|
<antcall target="test-resources">
|
|
<param name="db" value="@{db}"/>
|
|
</antcall>
|
|
<mkdir dir="${testreports.dir}/@{db}"/>
|
|
<echo>Running against db: @{db}</echo>
|
|
<junit printsummary="yes" fork="yes" haltonfailure="yes">
|
|
<classpath refid="junit.classpath"/>
|
|
<formatter type="plain"/>
|
|
<formatter type="xml"/>
|
|
<test fork="yes" todir="${testreports.dir}/@{db}"
|
|
haltonfailure="no" name="${testname}"/>
|
|
</junit>
|
|
</sequential>
|
|
</for>
|
|
</target>
|
|
|
|
<target name="jpa-javadoc" if="jpa-present">
|
|
<mkdir dir="${jpa-javadoc.dir}"/>
|
|
<ant dir="../jpa-api" target="javadoc" inheritAll="false"/>
|
|
<copy todir="${jpa-javadoc.dir}">
|
|
<fileset dir="${basedir}/../jpa-api/build/api">
|
|
<include name="**/*.*"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<!-- Some of this can probably be moved to common-build... -->
|
|
<target name="dist"
|
|
depends="get.deps.core,get.deps.test,jar,javadoc,jpa-javadoc,copysource,copytest,copylib,extras"
|
|
description="Build everything">
|
|
|
|
<ant inheritall="false" dir="${basedir}/doc/reference"/>
|
|
<copy todir="${dist.dir}/doc/reference" failonerror="false">
|
|
<fileset dir="${basedir}/doc/reference/build">
|
|
<include name="**/*.*"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<copy todir="${dist.dir}" failonerror="false">
|
|
<fileset dir="${common.dir}">
|
|
<include name="common-build.xml"/>
|
|
</fileset>
|
|
</copy>
|
|
<copy todir="${dist.dir}/ivy" failonerror="false">
|
|
<fileset dir="${ivy.jar.dir}">
|
|
<include name="**/*.*"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
<!-- copy dependencies -->
|
|
<copy todir="${dist.lib.dir}" failonerror="false">
|
|
<fileset dir="${ivy.dep.dir}/core">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="${dist.lib.dir}/test"/>
|
|
<copy todir="${dist.lib.dir}/test" failonerror="false">
|
|
<fileset dir="${ivy.dep.dir}/test">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
|
|
|
|
<!-- ivy uses the module name without hibernate- (to mimic the directory names). Revert the situation -->
|
|
<move file="${dist.lib.dir}/commons-annotations.jar"
|
|
tofile="${dist.lib.dir}/hibernate-commons-annotations.jar"
|
|
failonerror="false"/>
|
|
|
|
<copy file="${basedir}/build.properties.dist"
|
|
tofile="${dist.dir}/build.properties" failonerror="false">
|
|
</copy>
|
|
<antcall target="common-build.dist"/>
|
|
</target>
|
|
|
|
<target name="zip-dist" description="zip the dist">
|
|
<zip zipfile="${dist.dir}-${version}.zip">
|
|
<zipfileset prefix="${name}-${version}" dir="${dist.dir}"/>
|
|
</zip>
|
|
<tar compression="gzip" tarfile="${dist.dir}-${version}.tar.gz">
|
|
<tarfileset prefix="${name}-${version}" dir="${dist.dir}"/>
|
|
</tar>
|
|
</target>
|
|
|
|
</project>
|