Hello, I remember discussing on this list about people having problems building lucene with a fresh source d/l. A couple of people addressed the problem by changing the javacc_check task in the build.xml, and that was greatly appreciated.
However I noticed that some minor issues still exist. 1. When javacc_check fails, a message is given which tells users to supply their own javacc.home property in a .ant.properties file in their home directory or in the lucene directory. However, in the build.xml, the only property files that get included are "build.properties" 2. The javacc_check echo tells users to set their javacc.home to the javacc location plus /bin/lib, but then, in the build.properties file the javacc.zip.dir is made by appending a /lib to the given javacc.home. I went ahead and made a couple of changes to build.xml to remedy these two problems and would like to submit my changes: 1. Changed the include lines to include the file ".ant.properties" in the lucene directory. Removed the include for ${user.home}/build.properties. I'm not sure if this is the best solution, are people using ant with their .ant.properties file in their home directory? Or are people just editing the build.properties already located in the lucene directory? 2. Changed the wording for the javacc_check to let users know they only need to supply the javacc_home location plus /bin , not /bin/lib, and to do it in the lucene directory. Are these changes worthy? Attached is the build.xml file with my small changes. Thanks John David Garza [EMAIL PROTECTED]
<?xml version="1.0"?> <project name="Lucene" default="jar" basedir="."> <property file=".ant.properties"/> <property file="build.properties"/> <!-- Build classpath --> <path id="classpath"> <pathelement location="${build.classes}"/> <pathelement location="${build.demo.classes}"/> <pathelement location="${build.test.classes}"/> <pathelement location="."/> <fileset dir="lib"> <include name="*.jar" /> </fileset> </path> <path id="junit.classpath"> <pathelement location="${junit.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="COM.sun.labs.javacc.Main" classpath="${javacc.zip}" /> <available property="junit.present" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" /> </target> <target name="javacc_check" depends="init" unless="javacc.present"> <echo> ################################################################## JavaCC not found. JavaCC Home: ${javacc.home} JavaCC Zip: ${javacc.zip} Please download and install JavaCC 2.0 from: <http://www.webgain.com/products/java_cc/> Then, create a .ant.properties file 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/javacc2.0, 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: COM/sun/labs/javacc/Main ################################################################## </echo> </target> <!-- ================================================================== --> <!-- C O M P I L E --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="compile" depends="init,javacc_check" if="javacc.present"> <mkdir dir="${build.src}/org/apache/lucene/analysis/standard"/> <javacc target="${src.dir}/org/apache/lucene/analysis/standard/StandardTokenizer.jj" javacchome="${javacc.zip.dir}" outputdirectory="${build.src}/org/apache/lucene/analysis/standard" /> <delete file="${build.src}/org/apache/lucene/analysis/standard/ParseException.java"/> <mkdir dir="${build.src}/org/apache/lucene/queryParser"/> <javacc target="${src.dir}/org/apache/lucene/queryParser/QueryParser.jj" javacchome="${javacc.zip.dir}" outputdirectory="${build.src}/org/apache/lucene/queryParser" /> <javac srcdir="${src.dir}:${build.src}" includes="org/**/*.java" destdir="${build.classes}" debug="${debug}"> <classpath refid="classpath"/> </javac> </target> <!-- ================================================================== --> <!-- J A R --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="jar" depends="compile" if="javacc.present"> <jar jarfile="${build.dir}/${final.name}.jar" basedir="${build.classes}" excludes="**/*.java" /> </target> <target name="jardemo" depends="compile,demo" if="javacc.present"> <jar jarfile="${build.demo}/${build.demo.name}.jar" basedir="${build.demo.classes}" excludes="**/*.java" /> </target> <target name="wardemo" depends="compile,demo,jar,jardemo" if="javacc.present"> <mkdir dir="${build.demo}/${build.war.name}"/> <mkdir dir="${build.demo}/${build.war.name}/WEB-INF"/> <mkdir dir="${build.demo}/${build.war.name}/WEB-INF/lib"/> <copy todir="${build.demo}/${build.war.name}"> <fileset dir="${demo.jsp}"> <include name="**/*.jsp"/> <include name="**/*.xml"/> </fileset> </copy> <copy todir="${build.demo}/${build.war.name}/WEB-INF/lib"> <fileset dir="${build.dir}"> <include name="*.jar"/> </fileset> </copy> <copy todir="${build.demo}/${build.war.name}/WEB-INF/lib"> <fileset dir="${build.demo}"> <include name="*.jar"/> </fileset> </copy> <jar jarfile="${build.demo}/${build.war.name}.war" basedir="${build.demo}/${build.war.name}" excludes="**/*.java" /> </target> <!-- ================================================================== --> <!-- J A R S O U R C E --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="jar-src" depends="init,javacc_check" if="javacc.present"> <mkdir dir="${build.src}/org/apache/lucene/analysis/standard"/> <javacc target="${src.dir}/org/apache/lucene/analysis/standard/StandardTokenizer.jj" javacchome="${javacc.zip.dir}" outputdirectory="${build.src}/org/apache/lucene/analysis/standard" /> <delete file="${build.src}/org/apache/lucene/analysis/standard/ParseException.java"/> <mkdir dir="${build.src}/org/apache/lucene/queryParser"/> <javacc target="${src.dir}/org/apache/lucene/queryParser/QueryParser.jj" javacchome="${javacc.zip.dir}" outputdirectory="${build.src}/org/apache/lucene/queryParser" /> <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" if="javacc.present"> <mkdir dir="${build.demo}"/> <copy todir="${build.demo.src}"> <fileset dir="${demo.src}"> <include name="**/*.java"/> <include name="**/*.jj"/> </fileset> </copy> <javacc target="${build.demo.src}/org/apache/lucene/demo/html/HTMLParser.jj" javacchome="${javacc.zip.dir}" outputdirectory="${build.demo.src}/org/apache/lucene/demo/html" /> <mkdir dir="${build.demo.classes}"/> <javac srcdir="${build.demo.src}" includes="**/*.java" destdir="${build.demo.classes}" debug="${debug}"> <classpath refid="classpath"/> </javac> </target> <!-- ================================================================== --> <!-- B U I L D T E S T --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="test" depends="compile,demo"> <mkdir dir="${build.test}"/> <copy todir="${build.test.src}"> <fileset dir="${test.src}"> <include name="**/*.java"/> </fileset> </copy> <mkdir dir="${build.test.classes}"/> <javac srcdir="${build.test.src}" includes="**/*.java" destdir="${build.test.classes}" debug="${debug}"> <classpath refid="classpath"/> </javac> </target> <!-- ================================================================== --> <!-- R U N T E S T S --> <!-- ================================================================== --> <!-- --> <!-- ================================================================== --> <target name="test-unit" depends="compile,test" if="junit.present"> <!-- Import JUnit task --> <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask" /> <mkdir dir="${junit.classes}"/> <mkdir dir="${junit.reports}"/> <javac srcdir="${junit.src}" includes="**/*.java" destdir="${junit.classes}" debug="${debug}"> <classpath refid="classpath"/> </javac> <junit printsummary="yes" haltonfailure="no" > <classpath refid="junit.classpath"/> <formatter type="plain" /> <batchtest fork="yes" todir="${junit.reports}"> <fileset dir="${junit.src}" includes="**/Test*.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 depends="docs-prepare" name="prepare-error" 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" if="javacc.present"> <mkdir dir="${build.javadocs}"/> <javadoc sourcepath="${src.dir}:${build.src}" overview="${src.dir}/overview.html" packagenames="${packages}" destdir="${build.javadocs}" 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." > <classpath refid="classpath"/> </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.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}/**" /> </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}/**" /> <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="build.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" depends="init"> <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> </project>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>