| <?xml version="1.0"?> |
| |
| <project name="Lucene" default="default" 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"/> |
| |
| <tstamp> |
| <format property="current.year" pattern="yyyy"/> |
| <format property="DSTAMP" pattern="yyyy-MM-dd"/> |
| <format property="TSTAMP" pattern="HH:mm:ss"/> |
| </tstamp> |
| |
| <property name="name" value="lucene"/> |
| <property name="Name" value="Lucene"/> |
| <property name="version" value="1.5-rc1-dev"/> |
| <property name="year" value="2000-${current.year}"/> |
| <property name="final.name" value="${name}-${version}"/> |
| <property name="javac.deprecation" value="on"/> |
| <property name="javac.debug" value="on"/> |
| <property name="project.name" value="site"/> <!-- todo: is this used by anakia or something else? --> |
| <property name="javadoc.link" value="http://java.sun.com/j2se/1.4/docs/api/"/> |
| <property name="build.encoding" value="utf-8"/> |
| |
| <property name="build.dir" location="build"/> |
| <property name="dist.dir" location="dist"/> |
| |
| <property name="demo.name" value="${name}-demos-${version}"/> |
| <property name="demo.war.name" value="luceneweb"/> |
| |
| <property name="javacc.home" location="."/> |
| <property name="javacc.jar.dir" location="${javacc.home}/bin/lib"/> |
| <property name="javacc.jar" location="${javacc.jar.dir}/javacc.jar"/> |
| <property name="javacc.main.class" value="org.javacc.parser.Main"/> |
| |
| <property name="jakarta.site2.home" location="../jakarta-site2"/> |
| |
| <property name="junit.output.dir" location="${build.dir}/test"/> |
| <property name="junit.reports" location="${build.dir}/test/reports"/> |
| |
| <!-- Build classpath --> |
| <path id="classpath"> |
| <pathelement location="${build.dir}/classes/java"/> |
| <fileset dir="lib"> |
| <include name="*.jar"/> |
| </fileset> |
| </path> |
| |
| <path id="demo.classpath"> |
| <path refid="classpath"/> |
| <pathelement location="${build.dir}/classes/demo"/> |
| </path> |
| |
| <path id="test.classpath"> |
| <path refid="demo.classpath"/> |
| <pathelement location="${build.dir}/classes/test"/> |
| </path> |
| |
| <path id="junit.classpath"> |
| <pathelement location="${build.dir}/classes/test"/> |
| <pathelement location="${build.dir}/classes/java"/> |
| <pathelement location="${build.dir}/classes/demo"/> |
| <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="${dist.dir}"/> |
| |
| <available |
| property="javacc.present" |
| classname="${javacc.main.class}" |
| classpath="${javacc.jar}" |
| /> |
| |
| <available |
| property="junit.present" |
| classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" |
| /> |
| </target> |
| |
| <target name="javacc-check" depends="init"> |
| <fail unless="javacc.present"> |
| ################################################################## |
| JavaCC not found. |
| JavaCC Home: ${javacc.home} |
| JavaCC JAR: ${javacc.jar} |
| |
| Please download and install JavaCC from: |
| |
| <http://javacc.dev.java.net> |
| |
| 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 is installed. For example, |
| if you installed JavaCC in /usr/local/java/javacc-3.2, then set the |
| javacc.home property to: |
| |
| javacc.home=/usr/local/java/javacc-3.2 |
| |
| 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="compile-core"/> |
| <target name="compile-core" depends="init" |
| description="Compiles core classes"> |
| <mkdir dir="${build.dir}/classes/java"/> |
| <javac |
| encoding="${build.encoding}" |
| srcdir="src/java" |
| includes="org/**/*.java" |
| destdir="${build.dir}/classes/java" |
| deprecation="${javac.deprecation}" |
| debug="${javac.debug}"> |
| <classpath refid="classpath"/> |
| </javac> |
| |
| <rmic classname="org.apache.lucene.search.RemoteSearchable" |
| base="${build.dir}/classes/java"> |
| <classpath refid="classpath"/> |
| </rmic> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- J A R --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="jar" depends="jar-core"/> |
| <target name="jar-core" depends="compile-core" |
| description="Generates the Jar file"> |
| <jar |
| destfile="${build.dir}/${final.name}.jar" |
| basedir="${build.dir}/classes/java" |
| 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> |
| |
| <target name="jar-demo" depends="compile-demo"> |
| <jar |
| destfile="${build.dir}/${demo.name}.jar" |
| basedir="${build.dir}/classes/demo" |
| excludes="**/*.java" |
| /> |
| </target> |
| |
| <target name="war-demo" depends="jar-core,jar-demo"> |
| <war destfile="${build.dir}/${demo.war.name}.war" |
| webxml="src/jsp/WEB-INF/web.xml"> |
| <fileset dir="src/jsp" excludes="WEB-INF/web.xml"/> |
| <lib dir="${build.dir}" includes="${demo.name}.jar"/> |
| <lib dir="${build.dir}" includes="${final.name}.jar"/> |
| </war> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- J A R S O U R C E --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="jar-src" depends="init"> |
| <jar destfile="${build.dir}/${final.name}-src.jar"> |
| <fileset dir="." includes="src/"/> |
| </jar> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- B U I L D D E M O --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="compile-demo" depends="compile-core"> |
| <mkdir dir="${build.dir}/classes/demo"/> |
| |
| <javac |
| encoding="${build.encoding}" |
| srcdir="src/demo" |
| includes="**/*.java" |
| destdir="${build.dir}/classes/demo" |
| debug="${javac.debug}"> |
| <classpath refid="demo.classpath"/> |
| </javac> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- B U I L D T E S T --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="compile-test" depends="compile-core,compile-demo"> |
| <mkdir dir="${build.dir}/classes/test"/> |
| <javac |
| encoding="${build.encoding}" |
| srcdir="src/test" |
| includes="**/*.java" |
| destdir="${build.dir}/classes/test" |
| debug="true"> |
| <classpath refid="test.classpath"/> |
| </javac> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- R U N T E S T S --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="test" depends="compile-test" description="Runs unit tests"> |
| <fail unless="junit.present"> |
| ################################################################## |
| JUnit not found. |
| Please make sure junit.jar is in ANT_HOME/lib, or made available |
| to Ant using other mechanisms like -lib or CLASSPATH. |
| ################################################################## |
| </fail> |
| <mkdir dir="${junit.output.dir}"/> |
| <junit printsummary="off" haltonfailure="no" |
| errorProperty="tests.failed" failureProperty="tests.failed"> |
| <classpath refid="junit.classpath"/> |
| <sysproperty key="dataDir" file="src/test"/> |
| <sysproperty key="tempDir" file="${build.dir}/test"/> |
| <formatter type="xml"/> |
| <formatter type="brief" usefile="false"/> |
| <batchtest fork="yes" todir="${junit.output.dir}" unless="testcase"> |
| <fileset dir="src/test" includes="**/Test*.java"/> |
| </batchtest> |
| <batchtest fork="yes" todir="${junit.output.dir}" if="testcase"> |
| <fileset dir="src/test" includes="**/${testcase}.java"/> |
| </batchtest> |
| </junit> |
| |
| <fail if="tests.failed">Tests failed!</fail> |
| </target> |
| |
| <!-- backwards compatible target - may be removed --> |
| <target name="test-unit" depends="test"/> |
| |
| <target name="generate-test-reports" description="Generates test reports"> |
| <mkdir dir="${junit.reports}"/> |
| <junitreport todir="${junit.output.dir}"> |
| <fileset dir="${junit.output.dir}"> |
| <include name="TEST-*.xml"/> |
| </fileset> |
| <report format="frames" todir="${junit.reports}"/> |
| </junitreport> |
| </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="xdocs" |
| destdir="docs/" |
| extension=".html" style="./site.vsl" |
| projectFile="stylesheets/project.xml" |
| excludes="**/stylesheets/** empty.xml" |
| includes="**/*.xml" |
| lastModifiedCheck="true" |
| templatePath="${jakarta.site2.home}/xdocs/stylesheets" |
| /> |
| |
| <copy todir="docs/images" filtering="no"> |
| <fileset dir="xdocs/images"> |
| <include name="**/*.gif"/> |
| <include name="**/*.jpeg"/> |
| <include name="**/*.jpg"/> |
| </fileset> |
| </copy> |
| |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- J A V A D O C --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="javadocs"> |
| <mkdir dir="${build.dir}/docs/api"/> |
| <javadoc |
| sourcepath="src/java" |
| overview="src/java/overview.html" |
| packagenames="org.apache.lucene.*" |
| destdir="${build.dir}/docs/api" |
| encoding="${build.encoding}" |
| author="true" |
| version="true" |
| use="true" |
| link="${javadoc.link}" |
| windowtitle="${Name} ${version} API" |
| doctitle="${Name} ${version} API" |
| bottom="Copyright &copy; ${year} Apache Software Foundation. All Rights Reserved." |
| > |
| <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-core, javadocs, war-demo"/> |
| |
| <!-- ================================================================== --> |
| <!-- Packages the distribution with zip --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="package-zip" depends="package" |
| description="--> Generates the Lucene distribution as .zip"> |
| |
| <delete file="${dist.dir}/${final.name}.zip"/> |
| <zip destfile="${dist.dir}/${final.name}.zip"> |
| <zipfileset prefix="${final.name}" dir="." |
| includes="src/demo/,src/jsp/,build.xml,docs/,*.txt"/> |
| <zipfileset prefix="${final.name}" dir="${build.dir}" |
| includes="${final.name}.jar,${demo.war.name}.war,${demo.name}.jar,docs/"/> |
| </zip> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- packages the distribution with tar-gzip --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="package-tgz" depends="package" |
| description="--> Generates the lucene distribution as .tar.gz"> |
| |
| <!-- todo: make includes patterns below into property to reuse in package-zip --> |
| <delete file="${build.dir}/${final.name}.tar"/> |
| <delete file="${dist.dir}/${final.name}.tar.gz"/> |
| <tar tarfile="${build.dir}/${final.name}.tar"> |
| <tarfileset prefix="${final.name}" dir="." |
| includes="src/demo/,src/jsp/,build.xml,docs/,*.txt"/> |
| <tarfileset prefix="${final.name}" dir="${build.dir}" |
| includes="${final.name}.jar,${demo.war.name}.war,${demo.name}.jar,docs/"/> |
| </tar> |
| |
| <gzip zipfile="${dist.dir}/${final.name}.tar.gz" |
| src="${build.dir}/${final.name}.tar" |
| /> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- packages the distribution with zip and tar-gzip --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="package-all-binary" depends="package-zip, package-tgz" |
| description="--> Generates the .tar.gz and .zip distributions"/> |
| |
| <!-- ================================================================== --> |
| <!-- same as package-all. it is just here for compatibility. --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="dist" depends="package-all-binary"/> |
| |
| <!-- ================================================================== --> |
| <!-- S O U R C E D I S T R I B U T I O N --> |
| <!-- ================================================================== --> |
| |
| <!-- ================================================================== --> |
| <!-- Packages the sources with zip --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="package-zip-src" depends="init" |
| description="--> Generates the Lucene sources as .zip"> |
| <zip destfile="${dist.dir}/${final.name}-src.zip"> |
| <zipfileset prefix="${final.name}" dir="." |
| includes="src/,build.xml,lib/,docs/,*.txt"/> |
| </zip> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- Packages the sources with tar-gzip --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="package-tgz-src" depends="init" |
| description="--> Generates the Lucene distribution as .tar.gz"> |
| |
| <delete file="${build.dir}/${final.name}-src.tar"/> |
| <delete file="${dist.dir}/${final.name}-src.tar.gz"/> |
| <tar tarfile="${build.dir}/${final.name}-src.tar"> |
| <tarfileset prefix="${final.name}" dir="." |
| includes="src/,build.xml,lib/,docs/,*.txt"/> |
| </tar> |
| |
| <gzip zipfile="${dist.dir}/${final.name}-src.tar.gz" |
| src="${build.dir}/${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"/> |
| |
| <!-- ================================================================== --> |
| <!-- same as package-all-src. it is just here for compatibility. --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="dist-src" depends="package-all-src"/> |
| |
| <target name="dist-all" depends="dist, dist-src"/> |
| |
| <!-- ================================================================== --> |
| <!-- C L E A N --> |
| <!-- ================================================================== --> |
| <!-- --> |
| <!-- ================================================================== --> |
| <target name="clean" |
| description="Removes contents of build and dist directories"> |
| <delete dir="${build.dir}"/> |
| <delete dir="${dist.dir}"/> |
| <delete file="velocity.log"/> |
| </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.dir}/gen/org/apache/lucene/analysis/standard"/> |
| <antcall target="invoke-javacc"> |
| <param name="target" location="src/java/org/apache/lucene/analysis/standard/StandardTokenizer.jj"/> |
| <param name="output.dir" location="${build.dir}/gen/org/apache/lucene/analysis/standard"/> |
| </antcall> |
| <copy todir="src/java/org/apache/lucene/analysis/standard"> |
| <fileset dir="${build.dir}/gen/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/java/org/apache/lucene/queryParser/QueryParser.jj"/> |
| <param name="output.dir" location="src/java/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="src/demo/org/apache/lucene/demo/html/HTMLParser.jj"/> |
| <param name="output.dir" location="src/demo/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> |
| |
| <target name="default" depends="jar-core"/> |
| |
| </project> |