XmlSchema ant script
<?xml version="1.0"?> <!-- ~ Licensed to the Apache Software Foundation (ASF) under one ~ or more contributor license agreements. See the NOTICE file ~ distributed with this work for additional information ~ regarding copyright ownership. The ASF licenses this file ~ to you under the Apache License, Version 2.0 (the ~ "License"); you may not use this file except in compliance ~ with the License. You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, ~ software distributed under the License is distributed on an ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~ KIND, either express or implied. See the License for the ~ specific language governing permissions and limitations ~ under the License. --> <project name="XmlSchema" basedir="." default="jar"> <property name="src.dir" value="${basedir}/src/main/java"/> <property name="project.name" value="XmlSchema"/> <property name="output.jar" value="${project.name}.jar"/> <property name="build.dir" value="${basedir}/build"/> <property name="build_classes.dir" value="${build.dir}/classes"/> <property name="build_lib.dir" value="${build.dir}/lib"/> <property name="build_doc.dir" value="${build.dir}/apidoc"/> <property name="dist.dir" value="${build.dir}/dist"/> <property name="dist.zip" value="${project.name}.zip"/> <property name="srcdist.zip" value="${project.name}-src.zip"/> <property name="test.dir" value="${basedir}/src/test/java"/> <property name="test_classes.dir" value="${build.dir}/test-classes"/> <property name="test_reports.dir" value="${build.dir}/test-reports"/> <property name="test_reports_w3c.dir" value="${build.dir}/test-reports-w3c"/> <target name="setproxy" if="http.proxyhost"> <setproxy proxyhost="${http.proxyHost}" proxyport="${http.proxyPort}"/> </target> <target name="prepare" depends="setproxy"> <mkdir dir="${build_classes.dir}"/> <mkdir dir="${build_lib.dir}"/> <condition property="downloadLibs"> <not> <available file="${build_lib.dir}/xmlunit-1.0.jar"/> </not> </condition> <antcall target="get-deps"/> </target> <target name="get-deps" if="downloadLibs"> <get src="http://www.ibiblio.org/maven2/xmlunit/xmlunit/1.0/xmlunit-1.0.jar" dest="${build_lib.dir}/xmlunit-1.0.jar"/> <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/3.8.2/junit-3.8.2.jar" dest="${build_lib.dir}/junit-3.8.2.jar"/> </target> <target name="prepare-tests"> <mkdir dir="${test_classes.dir}"/> <mkdir dir="${test_reports.dir}"/> <mkdir dir="${test_reports_w3c.dir}"/> <antcall target="prepareNistTest"/> </target> <target name="prepareNistTest" unless="maven.test.skip"> <condition property="needsTestsDownload"> <not> <available file="${build.dir}/xmlschema2002-01-16"/> </not> </condition> <antcall target="get-xml-schema-tests"/> </target> <target name="get-xml-schema-tests" if="needsTestsDownload"> <echo>Downloading 6MB XML Schema test suite. This make take a few minutes...</echo> <get dest="${build.dir}/xsts-2002-01-16.tar.gz" src="http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2002-01-16/xsts-2002-01-16.tar.gz"/> <untar src="${build.dir}/xsts-2002-01-16.tar.gz" compression="gzip" dest="${build.dir}"/> </target> <target name="compile" depends="prepare" description="compiles the src and puts it in build/classes"> <javac srcdir="${src.dir}" destdir="${build_classes.dir}" debug="true" source="1.2" target="1.2" deprecation="true"> <include name="**/*.java" /> </javac> </target> <target name="compile-tests" depends="prepare-tests, compile" description="compiles the tests and puts them in build/test-classes"> <javac srcdir="${test.dir}" destdir="${test_classes.dir}" debug="true" deprecation="true"> <classpath> <pathelement location="${build_classes.dir}"/> <fileset dir="${build_lib.dir}"> <include name="*.jar" /> </fileset> </classpath> <include name="**/*.java" /> </javac> </target> <target name="test" depends="compile-tests" description="Runs the unit tests"> <junit printsummary="yes" haltonfailure="yes"> <classpath> <pathelement location="${build_classes.dir}"/> <pathelement location="${test_classes.dir}"/> <fileset dir="${build_lib.dir}"> <include name="*.jar" /> </fileset> </classpath> <formatter type="plain"/> <batchtest todir="${test_reports.dir}"> <fileset dir="${test.dir}"> <include name="tests/*Test*.java"/> <include name="tests/w3c/TestW3CSchemaTestSet.java"/> </fileset> </batchtest> <sysproperty key="nistTestLocation" value="${build.dir}/xmlschema2002-01-16/nisttest/NISTTestsAll"/> </junit> </target> <target name="testw3c" depends="compile-tests" description="Runs the full bucket of W3C unit tests"> <junit printsummary="yes" haltonfailure="no"> <classpath> <pathelement location="${build_classes.dir}"/> <pathelement location="${test_classes.dir}"/> <fileset dir="${build_lib.dir}"> <include name="*.jar" /> </fileset> </classpath> <formatter type="plain"/> <batchtest todir="${test_reports_w3c.dir}"> <fileset dir="${test.dir}"> <include name="tests/w3c/TestW3CSchemaBucket.java"/> </fileset> </batchtest> </junit> </target> <target name="jar" depends="compile, test" description="compiles the src and creates XmlSchema.jar in build/lib"> <jar jarfile="${build_lib.dir}/${output.jar}" compress="true" basedir="${build_classes.dir}"/> </target> <target name="javadoc" depends="compile" description="Javadoc for Xml Schema API."> <mkdir dir="${build_doc.dir}"/> <javadoc packagenames="org.apache.axis.xsd.*" destdir="${build.dir}/apidoc" windowtitle="${project.name} API" doctitle="${project.name}" bottom="Copyright © Apache XML Schema Project. All Rights Reserved."> <classpath> <pathelement location="${build_classes.dir}"/> </classpath> <sourcepath> <pathelement location="${src.dir}"/> </sourcepath> </javadoc> </target> <target name="clean" description="Clean all build products."> <delete dir="${build.dir}"/> </target> <target name="dist" depends="jar,javadoc" description="Creates a binary distribution(XmlSchema.zip) in build/dist"> <mkdir dir="${dist.dir}"/> <zip zipfile="${dist.dir}/${dist.zip}"> <zipfileset dir="${build_lib.dir}" prefix="${project.name}/lib"/> <zipfileset dir="${build_doc.dir}" prefix="${project.name}/doc"/> </zip> </target> <target name="srcdist" depends="compile" description="Creates a source distribution(XmlSchema-src.zip) in build/dist"> <mkdir dir="${dist.dir}"/> <zip zipfile="${dist.dir}/${srcdist.zip}"> <zipfileset dir="${basedir}" includes="build.xml" prefix="${project.name}"/> <zipfileset dir="${src.dir}" prefix="${project.name}/src"/> </zip> </target> </project>