XmlSchema ant script : Big Project Ant Script « Ant « Java






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 &#169;  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>

 








Related examples in the same category

1.Ant script for xmlgraphics-commons
2.nutch ant script
3.rhino ant build script
4.apache solr ant script
5.Tomcat ant build script
6.OFBiz ant build script
7.Apache Lenya Build System
8.Apache pivot ant build script
9.xml security
10.velocity tools ant script
11.weka build script
12.xml bean ant script
13.xml graphics common ant script
14.uPortal ant script
15.SmartGWT ant script
16.Build file to fetch maven2 tasks; extracted from (Ant's) fetch.xml
17.Build file to fetch optional libraries for Apache Ant
18.Ant build script
19.Build script for apache-cassandra-0.5.1-src
20.apache-log4j-site\build.xml
21.apache-roller-src-4.0.1
22.Build script from apache dbutils
23.Fop build script
24.Google guice ant script
25.GWT ant script
26.hadoop ant build script
27.jakarta jmeter ant script
28.jakarta oro ant script
29.jakarta regexp ant script
30.jedit build script
31.jibx ant build script
32.lucene ant build script