lucene/build.xml

650 lines
24 KiB
XML

<?xml version="1.0"?>
<project name="Lucene" default="jar" basedir=".">
<!-- Give user a chance to override without editing this file
(and without typing -D each time it compiles it -->
<property file="${user.home}/lucene.build.properties"/>
<property file="${user.home}/build.properties"/>
<property file="${basedir}/build.properties"/>
<property file="${basedir}/default.properties"/>
<property name="javacc.main.class" value="org.javacc.parser.Main"/>
<!-- Build classpath -->
<path id="classpath">
<pathelement location="${build.classes}"/>
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<path id="demo.classpath">
<path refid="classpath"/>
<pathelement location="${build.demo.classes}"/>
</path>
<path id="test.classpath">
<path refid="demo.classpath"/>
<pathelement location="${build.test.classes}"/>
</path>
<path id="junit.classpath">
<pathelement location="${build.test.classes}"/>
<pathelement location="${build.classes}"/>
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
<pathelement path="${java.class.path}"/>
</path>
<path id="anakia.classpath">
<fileset dir="${jakarta.site2.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- ================================================================== -->
<!-- Prepares the build directory -->
<!-- ================================================================== -->
<target name="init">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.src}"/>
<available
property="javacc.present"
classname="${javacc.main.class}"
classpath="${javacc.jar}"
/>
<available
property="junit.present"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
/>
<tstamp>
<format property="DSTAMP" pattern="yyyy-MM-dd"/>
<format property="TSTAMP" pattern="HH:mm:ss"/>
</tstamp>
</target>
<target name="javacc-check" depends="init">
<fail unless="javacc.present">
##################################################################
JavaCC not found.
JavaCC Home: ${javacc.home}
JavaCC Zip: ${javacc.jar}
Please download and install JavaCC from:
&lt;http://javacc.dev.java.net&gt;
Then, create a build.properties file either in your home
directory, or within the Lucene directory and set the javacc.home
property to the path where JavaCC.zip is located. For example,
if you installed JavaCC in /usr/local/java/javacc3.2, then set the
javacc.home property to:
javacc.home=/usr/local/java/javacc2.0/bin
If you get an error like the one below, then you have not installed
things correctly. Please check all your paths and try again.
java.lang.NoClassDefFoundError: org.javacc.parser.Main
##################################################################
</fail>
</target>
<!-- ================================================================== -->
<!-- C O M P I L E -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="compile" depends="init">
<javac
encoding="${build.encoding}"
srcdir="${src.dir}"
includes="org/**/*.java"
destdir="${build.classes}"
debug="${debug}">
<classpath refid="classpath"/>
</javac>
<rmic classname="org.apache.lucene.search.RemoteSearchable"
base="${build.classes}">
<classpath refid="classpath"/>
</rmic>
</target>
<!-- ================================================================== -->
<!-- J A R -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="jar" depends="compile">
<jar
jarfile="${build.dir}/${final.name}.jar"
basedir="${build.classes}"
excludes="**/*.java">
<manifest>
<attribute name="Created-By" value="Apache Jakarta"/>
<section name="org/apache/lucene">
<attribute name="Specification-Title" value="Lucene Search Engine"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Specification-Vendor" value="Lucene"/>
<attribute name="Implementation-Title" value="org.apache.lucene"/>
<attribute name="Implementation-Version" value="build ${DSTAMP} ${TSTAMP}"/>
<attribute name="Implementation-Vemdpr" value="Lucene"/>
</section>
</manifest>
</jar>
</target>
<!--
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6alpha
Created-By: Apache Jakarta
Name: org/apache/lucene
Specification-Title: Lucene Search Engine
Specification-Version: 1.3-rc2-dev
Specification-Vendor: Lucene
Implementation-Title: org.apache.lucene
Implementation-Version: build 2003-09-18 13:08:01
Implementation-Vendor: Lucene
-->
<target name="jardemo" depends="compile,demo">
<jar
jarfile="${build.demo}/${build.demo.name}.jar"
basedir="${build.demo.classes}"
excludes="**/*.java"
/>
</target>
<target name="wardemo" depends="compile,demo,jar,jardemo">
<mkdir dir="${build.demo}/${build.demo.war.name}"/>
<mkdir dir="${build.demo}/${build.demo.war.name}/WEB-INF"/>
<mkdir dir="${build.demo}/${build.demo.war.name}/WEB-INF/lib"/>
<copy todir="${build.demo}/${build.demo.war.name}">
<fileset dir="${demo.jsp}">
<include name="**/*.jsp"/>
<include name="**/*.xml"/>
</fileset>
</copy>
<copy todir="${build.demo}/${build.demo.war.name}/WEB-INF/lib">
<fileset dir="${build.dir}">
<include name="*.jar"/>
</fileset>
</copy>
<copy todir="${build.demo}/${build.demo.war.name}/WEB-INF/lib">
<fileset dir="${build.demo}">
<include name="*.jar"/>
</fileset>
</copy>
<jar
jarfile="${build.demo}/${build.demo.war.name}.war"
basedir="${build.demo}/${build.demo.war.name}"
excludes="**/*.java"
/>
</target>
<!-- ================================================================== -->
<!-- J A R S O U R C E -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="jar-src" depends="init">
<mkdir dir="${build.src}/org/apache/lucene/analysis/standard"/>
<jar jarfile="${build.dir}/${final.name}-src.jar">
<fileset dir="${build.dir}" includes="**/*.java"/>
</jar>
</target>
<!-- ================================================================== -->
<!-- B U I L D D E M O -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="demo" depends="compile">
<mkdir dir="${build.demo}"/>
<mkdir dir="${build.demo.src}"/>
<copy todir="${build.demo.src}">
<fileset dir="${demo.src}">
<include name="**/*.java"/>
<include name="**/*.jj"/>
</fileset>
</copy>
<mkdir dir="${build.demo.classes}"/>
<javac
encoding="${build.encoding}"
srcdir="${build.demo.src}"
includes="**/*.java"
destdir="${build.demo.classes}"
debug="${debug}">
<classpath refid="demo.classpath"/>
</javac>
</target>
<!-- ================================================================== -->
<!-- B U I L D T E S T -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="test" depends="compile,demo">
<mkdir dir="${build.test.classes}"/>
<javac
encoding="${build.encoding}"
srcdir="${test.src}"
includes="**/*.java"
destdir="${build.test.classes}"
debug="true">
<classpath refid="test.classpath"/>
</javac>
</target>
<!-- ================================================================== -->
<!-- R U N T E S T S -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="test-unit" depends="compile,test" if="junit.present">
<mkdir dir="${junit.reports}"/>
<junit printsummary="off" haltonfailure="no">
<classpath refid="junit.classpath"/>
<formatter type="plain"/>
<formatter type="brief" usefile="false"/>
<batchtest fork="yes" todir="${junit.reports}" unless="testcase">
<fileset dir="${junit.src}" includes="**/Test*.java"/>
</batchtest>
<batchtest fork="yes" todir="${junit.reports}" if="testcase">
<fileset dir="${junit.src}" includes="**/${testcase}.java"/>
</batchtest>
</junit>
</target>
<!-- ================================================================== -->
<!-- D O C U M E N T A T I O N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="docs-prepare">
<available
classname="org.apache.velocity.anakia.AnakiaTask"
property="AnakiaTask.present"
classpathref="anakia.classpath"
/>
</target>
<target name="prepare-error" depends="docs-prepare" unless="AnakiaTask.present">
<echo>
AnakiaTask is not present! Please check to make sure that
you have jakarta.site2.home set correctly.
</echo>
</target>
<target name="docs" depends="prepare-error" if="AnakiaTask.present">
<taskdef
name="anakia"
classname="org.apache.velocity.anakia.AnakiaTask"
>
<classpath refid="anakia.classpath"/>
</taskdef>
<anakia
basedir="${docs.src}"
destdir="${docs.dest}/"
extension=".html" style="./site.vsl"
projectFile="stylesheets/project.xml"
excludes="**/stylesheets/** empty.xml"
includes="**/*.xml"
lastModifiedCheck="true"
templatePath="${jakarta.site2.home}/xdocs/stylesheets"
>
</anakia>
<copy todir="${docs.dest}/images" filtering="no">
<fileset dir="${docs.src}/images">
<include name="**/*.gif"/>
<include name="**/*.jpeg"/>
<include name="**/*.jpg"/>
</fileset>
</copy>
<!-- In case we have CSS someday
<copy todir="${docs.dest}" filtering="no">
<fileset dir="${docs.src}">
<include name="**/*.css"/>
</fileset>
</copy>
-->
</target>
<!-- ================================================================== -->
<!-- J A V A D O C -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="javadocs" depends="compile">
<mkdir dir="${build.javadocs}"/>
<javadoc
sourcepath="${src.dir}:${build.src}"
overview="${src.dir}/overview.html"
packagenames="${packages}"
destdir="${build.javadocs}"
encoding="${build.encoding}"
author="true"
version="true"
use="true"
link="${javadoc.link}"
windowtitle="${Name} ${version} API"
doctitle="${Name} ${version} API"
bottom="Copyright &amp;copy; ${year} Apache Software Foundation. All Rights Reserved."
>
<classpath refid="classpath"/>
<tag name="todo" description="To Do:"/>
</javadoc>
</target>
<!-- ================================================================== -->
<!-- D I S T R I B U T I O N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package" depends="jar, javadocs, demo, wardemo">
<mkdir dir="${dist.dir}"/>
<mkdir dir="${dist.dir}/docs"/>
<mkdir dir="${dist.dir}/docs/api"/>
<mkdir dir="${dist.dir}/src/demo"/>
<mkdir dir="${dist.dir}/src/jsp"/>
<copy todir="${dist.dir}/docs">
<fileset dir="${docs.dir}"/>
</copy>
<copy todir="${dist.dir}/docs/api">
<fileset dir="${build.javadocs}"/>
</copy>
<copy todir="${dist.dir}/src/demo">
<fileset dir="src/demo"/>
</copy>
<copy todir="${dist.dir}/src/jsp">
<fileset dir="src/jsp"/>
</copy>
<copy todir="${dist.dir}/lib">
<fileset dir="lib"/>
</copy>
<copy todir="${dist.dir}">
<fileset dir=".">
<include name="*.txt"/>
</fileset>
</copy>
<copy file="${build.dir}/${final.name}.jar" todir="${dist.dir}"/>
<copy file="${build.demo}/${build.demo.name}.jar" todir="${dist.dir}"/>
<copy file="${build.demo}/${build.demo.war.name}.war" todir="${dist.dir}"/>
</target>
<!-- ================================================================== -->
<!-- Packages the distribution with zip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-zip" depends="package"
description="--> Generates the Lucene distribution as .zip">
<delete file="${basedir}/${final.name}.zip"/>
<zip
zipfile="${basedir}/${final.name}.zip"
basedir="${basedir}/"
includes="**/${final.name}/**"
excludes="**/junit*jar"
/>
</target>
<!-- ================================================================== -->
<!-- packages the distribution with tar-gzip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-tgz" depends="package"
description="--> Generates the lucene distribution as .tar.gz">
<delete file="${basedir}/${final.name}.tar"/>
<delete file="${basedir}/${final.name}.tar.gz"/>
<tar
tarfile="${basedir}/${final.name}.tar"
basedir="${basedir}/"
includes="**/${final.name}/**"
excludes="**/junit*jar"
/>
<gzip
zipfile="${basedir}/${final.name}.tar.gz"
src="${basedir}/${final.name}.tar"
/>
</target>
<!-- ================================================================== -->
<!-- packages the distribution with zip and tar-gzip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-all" depends="package-zip, package-tgz"
description="--> Generates the .tar.gz and .zip distributions">
</target>
<!-- ================================================================== -->
<!-- same as package-all. it is just here for compatibility. -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="dist" depends="package-all">
</target>
<!-- ================================================================== -->
<!-- S O U R C E D I S T R I B U T I O N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-src" depends="jar-src">
<mkdir dir="${dist-src.dir}"/>
<copy todir="${dist-src.dir}/src">
<fileset dir="src"/>
</copy>
<copy todir="${dist-src.dir}/lib">
<fileset dir="lib"/>
</copy>
<copy todir="${dist-src.dir}/" file="build.xml"/>
<copy todir="${dist-src.dir}/" file="default.properties"/>
<copy todir="${dist-src.dir}">
<fileset dir=".">
<include name="*.txt"/>
</fileset>
</copy>
<copy file="${build.dir}/${final.name}-src.jar" todir="${dist-src.dir}"/>
</target>
<!-- ================================================================== -->
<!-- Packages the sources with zip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-zip-src" depends="package-src"
description="--> Generates the Lucene sources as .zip">
<delete file="${basedir}/${final.name}-src.zip"/>
<zip
zipfile="${basedir}/${final.name}-src.zip"
basedir="${basedir}/"
includes="**/${final.name}-src/**"
/>
</target>
<!-- ================================================================== -->
<!-- Packages the sources with tar-gzip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-tgz-src" depends="package-src"
description="--> Generates the Lucene distribution as .tar.gz">
<delete file="${basedir}/${final.name}-src.tar"/>
<delete file="${basedir}/${final.name}-src.tar.gz"/>
<tar
tarfile="${basedir}/${final.name}-src.tar"
basedir="${basedir}/"
includes="**/${final.name}-src/**"
/>
<gzip
zipfile="${basedir}/${final.name}-src.tar.gz"
src="${basedir}/${final.name}-src.tar"
/>
</target>
<!-- ================================================================== -->
<!-- Packages the sources with zip and tar-gzip -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package-all-src" depends="package-zip-src, package-tgz-src"
description="--> Generates the .tar.gz and .zip source distributions">
</target>
<!-- ================================================================== -->
<!-- same as package-all-src. it is just here for compatibility. -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="dist-src" depends="package-all-src">
</target>
<!-- ================================================================== -->
<!-- C L E A N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
<delete file="${basedir}/${final.name}.tar"/>
<delete file="${basedir}/${final.name}.tar.gz"/>
<delete file="${basedir}/${final.name}.zip"/>
<delete dir="${dist.dir}-src"/>
<delete file="${basedir}/${final.name}-src.tar"/>
<delete file="${basedir}/${final.name}-src.tar.gz"/>
<delete file="${basedir}/${final.name}-src.zip"/>
</target>
<!-- ================================================================== -->
<!-- Build the Ant index task -->
<!-- ================================================================== -->
<!--
<target name="anttask-init">
<property name="anttask.classes" location="${build.dir}/anttask/classes"/>
<mkdir dir="${anttask.classes}"/>
</target>
<target name="anttask-compile" depends="compile,anttask-init">
<javac
srcdir="${anttask.src}"
destdir="${anttask.classes}"
debug="${debug}">
<classpath refid="classpath"/>
</javac>
</target>
-->
<!-- ================================================================== -->
<!-- Build the DocWeb app -->
<!-- ================================================================== -->
<target name="docweb-init">
<!-- <mkdir dir="${}"/> -->
</target>
<!--
<target name="docweb-index" depends="javadocs,anttask-compile,docweb-init">
<taskdef name="index"
classname="org.apache.lucene.ant.IndexTask">
<classpath>
<pathelement location="${anttask.classes}"/>
<path refid="classpath"/>
</classpath>
</taskdef>
<index index="${build.docweb}/index"
overwrite="false">
<fileset dir="${docs.dir}"/>
<fileset dir="${build.javadocs}"/>
</index>
</target>
<target name="docweb-war" depends="jar,jardemo,docweb-index">
<war warfile="${build.docweb}/${build.docweb.war.name}.war"
webxml="${demo.jsp}/WEB-INF/web.xml">
<fileset dir="${demo.jsp}" excludes="WEB-INF/"/>
<lib dir="${build.demo}" includes="*.jar"/>
<lib dir="${build.dir}" includes="*.jar"/>
<webinf dir="${build.docweb}" includes="index/"/>
</war>
</target>
-->
<!-- ================================================================== -->
<!-- Build the JavaCC files into the source tree -->
<!-- ================================================================== -->
<target name="javacc" depends="javacc-StandardAnalyzer,javacc-QueryParser,javacc-HTMLParser"/>
<target name="javacc-StandardAnalyzer" depends="init,javacc-check" if="javacc.present">
<!-- generate this in a build directory so we can exclude ParseException -->
<mkdir dir="${build.src}/org/apache/lucene/analysis/standard"/>
<antcall target="invoke-javacc">
<param name="target" location="${src.dir}/org/apache/lucene/analysis/standard/StandardTokenizer.jj"/>
<param name="output.dir" location="${build.src}/org/apache/lucene/analysis/standard"/>
</antcall>
<copy todir="${src.dir}/org/apache/lucene/analysis/standard">
<fileset dir="${build.src}/org/apache/lucene/analysis/standard">
<include name="*.java"/>
<exclude name="ParseException.java"/>
</fileset>
</copy>
</target>
<target name="javacc-QueryParser" depends="init,javacc-check" if="javacc.present">
<antcall target="invoke-javacc">
<param name="target" location="${src.dir}/org/apache/lucene/queryParser/QueryParser.jj"/>
<param name="output.dir" location="${src.dir}/org/apache/lucene/queryParser"/>
</antcall>
</target>
<target name="javacc-HTMLParser" depends="init,javacc-check" if="javacc.present">
<antcall target="invoke-javacc">
<param name="target" location="${demo.src}/org/apache/lucene/demo/html/HTMLParser.jj"/>
<param name="output.dir" location="${demo.src}/org/apache/lucene/demo/html"/>
</antcall>
</target>
<target name="invoke-javacc">
<java classname="${javacc.main.class}" fork="true">
<classpath path="${javacc.jar}"/>
<sysproperty key="install.root" file="${javacc.home}"/>
<arg value="-OUTPUT_DIRECTORY:${output.dir}"/>
<arg value="${target}"/>
</java>
</target>
</project>