mirror of https://github.com/apache/lucene.git
735 lines
31 KiB
XML
735 lines
31 KiB
XML
<?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="core" default="default" basedir=".">
|
|
|
|
<property name="junit.includes" value="**/Test*.java"/>
|
|
|
|
<import file="common-build.xml"/>
|
|
|
|
<property name="build.demo.template" value="src/demo/demo-build.template"/>
|
|
|
|
<property name="demo.name" value="lucene-demos-${version}"/>
|
|
<property name="demo.war.name" value="luceneweb"/>
|
|
|
|
<!-- Type of checksum to compute for distribution files -->
|
|
<property name="checksum.algorithm" value="md5" />
|
|
|
|
<!-- Build classpath -->
|
|
<path id="classpath">
|
|
<pathelement location="${build.dir}/classes/java"/>
|
|
</path>
|
|
|
|
<path id="tag.classpath">
|
|
<pathelement location="${build.dir}/${tag}/classes/java"/>
|
|
</path>
|
|
|
|
<path id="demo.classpath">
|
|
<path refid="classpath"/>
|
|
<pathelement location="${build.dir}/classes/demo"/>
|
|
</path>
|
|
|
|
<path id="test.classpath">
|
|
<path refid="demo.classpath"/>
|
|
<path refid="junit-path"/>
|
|
<pathelement location="${build.dir}/classes/test"/>
|
|
</path>
|
|
|
|
|
|
<path id="junit.classpath">
|
|
<path refid="junit-path"/>
|
|
<pathelement location="${build.dir}/classes/test"/>
|
|
<pathelement location="${build.dir}/classes/java"/>
|
|
<pathelement location="${build.dir}/classes/demo"/>
|
|
<pathelement path="${java.class.path}"/>
|
|
</path>
|
|
|
|
<patternset id="src.dist.patterns"
|
|
includes="src/,build.xml,*build*.xml,docs/,*.txt,contrib/,*pom.xml*,lib/"
|
|
excludes="contrib/db/*/lib/,contrib/*/ext-libs/,src/site/build/,contrib/benchmark/temp/**,contrib/benchmark/work/**"
|
|
/>
|
|
<patternset id="binary.build.dist.patterns"
|
|
includes="${final.name}.jar,${demo.war.name}.war,${demo.name}.jar,docs/,contrib/*/*.jar,contrib/*/*.war"
|
|
/>
|
|
<patternset id="binary.root.dist.patterns"
|
|
includes="src/demo/,src/jsp/,docs/,*.txt,contrib/*/README*,**/CHANGES.txt,lib/servlet-api-*.jar"
|
|
excludes="${build.demo.template}"
|
|
/>
|
|
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Prepares the build directory -->
|
|
<!-- ================================================================== -->
|
|
|
|
<target name="test-core" depends="common.test"
|
|
description="Runs unit tests for the core Lucene code"
|
|
/>
|
|
<target name="test" depends="test-core, test-contrib, test-tag"
|
|
description="Runs all unit tests (core, contrib and back-compat)"
|
|
/>
|
|
|
|
<property name="tag" value="${compatibility.tag}"/>
|
|
|
|
<path id="tag.test.classpath">
|
|
<path refid="junit-path"/>
|
|
<pathelement location="${build.dir}/classes/demo"/>
|
|
<pathelement location="${build.dir}/${tag}/${tag}.jar"/>
|
|
</path>
|
|
|
|
<path id="tag.junit.classpath">
|
|
<path refid="junit-path"/>
|
|
<pathelement location="${build.dir}/${tag}/classes/test"/>
|
|
<pathelement location="${build.dir}/${final.name}.jar"/>
|
|
<pathelement location="${build.dir}/classes/demo"/>
|
|
<pathelement path="${java.class.path}"/>
|
|
</path>
|
|
|
|
<target name="download-tag"
|
|
description="Downloads a previous Lucene version. Specify tag version like this: -Dtag=lucene_2_4_back_compat_tests_20090127">
|
|
<sequential>
|
|
<mkdir dir="${tags.dir}/${tag}"/>
|
|
<exec dir="${tags.dir}/${tag}" executable="${svn.exe}"
|
|
failifexecutionfails="false">
|
|
<arg line="checkout http://svn.apache.org/repos/asf/lucene/java/tags/${tag}/src/"/>
|
|
</exec>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="test-tag" depends="download-tag, compile-core, compile-demo, jar-core"
|
|
description="Runs tests of a previous Lucene version. Specify tag version like this: -Dtag=branches/lucene_2_4_back_compat_tests">
|
|
<sequential>
|
|
<available property="tag.available" file="${tags.dir}/${tag}/src/test" />
|
|
|
|
<fail unless="tag.available">
|
|
Specified tag '${tag}' could not be found in directory '${tags.dir}/${tag}'.
|
|
</fail>
|
|
<mkdir dir="${build.dir}/${tag}"/>
|
|
|
|
<!-- first compile tag classes -->
|
|
<compile
|
|
srcdir="${tags.dir}/${tag}/src/java"
|
|
destdir="${build.dir}/${tag}/classes/java">
|
|
<classpath refid="tag.classpath"/>
|
|
</compile>
|
|
|
|
<!-- compile jar for tag -->
|
|
<jarify basedir="${build.dir}/${tag}/classes/java"
|
|
destfile="${build.dir}/${tag}/${tag}.jar" />
|
|
|
|
<!-- compile tag tests against tag jar -->
|
|
<compile-test-macro srcdir="${tags.dir}/${tag}/src/test" destdir="${build.dir}/${tag}/classes/test"
|
|
test.classpath="tag.test.classpath"/>
|
|
|
|
<!-- run tag tests against trunk jar -->
|
|
<test-macro dataDir="${tags.dir}/${tag}/src/test"
|
|
tempDir="${build.dir}/${tag}"
|
|
junit.classpath="tag.junit.classpath"/>
|
|
</sequential>
|
|
</target>
|
|
|
|
|
|
<target name="clean-tags"
|
|
description="Removes contents of the tags directory">
|
|
<delete dir="${tags.dir}"/>
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- J A R -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
|
|
<target name="jar-demo" depends="compile-demo">
|
|
<sequential>
|
|
<build-manifest title="Lucene Search Engine: demos"/>
|
|
<jar
|
|
destfile="${build.dir}/${demo.name}.jar"
|
|
basedir="${build.dir}/classes/demo"
|
|
excludes="**/*.java"
|
|
manifest="${manifest.file}">
|
|
<metainf dir="${common.dir}">
|
|
<include name="LICENSE.txt"/>
|
|
<include name="NOTICE.txt"/>
|
|
</metainf>
|
|
</jar>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="jar-demo-src" depends="compile-demo">
|
|
<sequential>
|
|
<build-manifest title="Lucene Search Engine: demos"/>
|
|
<jar
|
|
destfile="${build.dir}/${demo.name}-src.jar"
|
|
basedir="src/demo"
|
|
manifest="${manifest.file}">
|
|
<metainf dir="${common.dir}">
|
|
<include name="LICENSE.txt"/>
|
|
<include name="NOTICE.txt"/>
|
|
</metainf>
|
|
</jar>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="war-demo" depends="jar-core,jar-demo">
|
|
<sequential>
|
|
<build-manifest title="Lucene Search Engine: demos"/>
|
|
<war destfile="${build.dir}/${demo.war.name}.war"
|
|
webxml="src/jsp/WEB-INF/web.xml"
|
|
manifest="${manifest.file}">
|
|
<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"/>
|
|
<metainf dir="${common.dir}">
|
|
<include name="LICENSE.txt"/>
|
|
<include name="NOTICE.txt"/>
|
|
</metainf>
|
|
</war>
|
|
</sequential>
|
|
</target>
|
|
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- B U I L D D E M O -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="compile-demo" depends="compile-core">
|
|
<mkdir dir="${build.dir}/classes/demo"/>
|
|
|
|
<compile
|
|
srcdir="src/demo"
|
|
destdir="${build.dir}/classes/demo">
|
|
<classpath refid="demo.classpath"/>
|
|
</compile>
|
|
</target>
|
|
|
|
<!-- TODO: Remove dependency on demo from test -->
|
|
<target name="compile-test" depends="compile-demo,common.compile-test"/>
|
|
|
|
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- D O C U M E N T A T I O N -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="docs" description="Build the website">
|
|
<echo>DEPRECATED - Doing Nothing. See http://wiki.apache.org/lucene-java/HowToUpdateTheWebsite</echo>
|
|
</target>
|
|
|
|
<target name="javadocs" description="Generate javadoc"
|
|
depends="javadocs-all, javadocs-core, javadocs-demo, javadocs-contrib">
|
|
<echo file="${javadoc.dir}/index.html" append="false">
|
|
<![CDATA[<html><head><title>${Name} ${version} Javadoc Index</title></head>
|
|
<body>
|
|
<h1>${Name} ${version} Javadoc Index</h1>
|
|
<ul>
|
|
<li><a href="all/index.html">All</a></li>
|
|
<li><a href="core/index.html">Core</a></li>
|
|
<li>Contrib packages:</li>
|
|
<ul>
|
|
]]></echo>
|
|
<contrib-crawl target="javadocs-index.html" failonerror="false"/>
|
|
<echo file="${javadoc.dir}/index.html" append="true"><![CDATA[
|
|
</ul>
|
|
<li><a href="demo/index.html">Demo</a></li>
|
|
</ul></body>]]></echo>
|
|
</target>
|
|
|
|
<target name="javadocs-core" description="Generate javadoc for core classes">
|
|
<sequential>
|
|
<mkdir dir="${javadoc.dir}/core"/>
|
|
<invoke-javadoc
|
|
destdir="${javadoc.dir}/core"
|
|
title="${Name} ${version} core API">
|
|
<sources>
|
|
<packageset dir="src/java"/>
|
|
<link href="../"/>
|
|
</sources>
|
|
</invoke-javadoc>
|
|
<jarify basedir="${javadoc.dir}/core" destfile="${build.dir}/${final.name}-javadoc.jar"/>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="javadocs-demo" description="Generate javadoc for demo classes">
|
|
<sequential>
|
|
<mkdir dir="${javadoc.dir}/demo"/>
|
|
<invoke-javadoc
|
|
destdir="${javadoc.dir}/demo"
|
|
title="${Name} ${version} demo API">
|
|
<sources>
|
|
<packageset dir="src/demo"/>
|
|
<link href="../"/>
|
|
</sources>
|
|
</invoke-javadoc>
|
|
<jarify basedir="${javadoc.dir}/demo" destfile="${build.dir}/${demo.name}-javadoc.jar"/>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="javadocs-contrib" description="Generate javadoc for contrib classes">
|
|
<contrib-crawl target="javadocs"
|
|
failonerror="false"/>
|
|
</target>
|
|
|
|
<target name="javadocs-all" description="Generate javadoc for core, demo and contrib classes" depends="build-contrib">
|
|
<sequential>
|
|
<mkdir dir="${javadoc.dir}/all"/>
|
|
<invoke-javadoc
|
|
destdir="${javadoc.dir}/all">
|
|
<sources>
|
|
<!-- TODO: find a dynamic way to do include multiple source roots -->
|
|
<packageset dir="src/java"/>
|
|
|
|
<packageset dir="src/demo"/>
|
|
|
|
<!-- please keep this list up to date, and in alpha order... -->
|
|
|
|
<!-- ie: `find contrib/* -path \*src/java | sort` -->
|
|
|
|
<!-- if you make changes to the list of package sets, also -->
|
|
<!-- make sure the group list below is updated. -->
|
|
<!-- Also remember to keep site.xml in sync. -->
|
|
|
|
<packageset dir="contrib/analyzers/common/src/java"/>
|
|
<packageset dir="contrib/analyzers/smartcn/src/java"/>
|
|
<packageset dir="contrib/ant/src/java"/>
|
|
<packageset dir="contrib/benchmark/src/java"/>
|
|
<packageset dir="contrib/collation/src/java"/>
|
|
<packageset dir="contrib/db/bdb-je/src/java"/>
|
|
<packageset dir="contrib/db/bdb/src/java"/>
|
|
<packageset dir="contrib/fast-vector-highlighter/src/java"/>
|
|
<packageset dir="contrib/highlighter/src/java"/>
|
|
<packageset dir="contrib/instantiated/src/java"/>
|
|
<packageset dir="contrib/lucli/src/java"/>
|
|
<packageset dir="contrib/memory/src/java"/>
|
|
<packageset dir="contrib/miscellaneous/src/java"/>
|
|
<packageset dir="contrib/queries/src/java"/>
|
|
<packageset dir="contrib/regex/src/java"/>
|
|
<packageset dir="contrib/remote/src/java"/>
|
|
<packageset dir="contrib/snowball/src/java"/>
|
|
<packageset dir="contrib/spatial/src/java"/>
|
|
<packageset dir="contrib/spellchecker/src/java"/>
|
|
<packageset dir="contrib/surround/src/java"/>
|
|
<packageset dir="contrib/swing/src/java"/>
|
|
<packageset dir="contrib/wikipedia/src/java"/>
|
|
<packageset dir="contrib/wordnet/src/java"/>
|
|
<packageset dir="contrib/xml-query-parser/src/java"/>
|
|
<packageset dir="contrib/queryparser/src/java"/>
|
|
<!-- end alpha sort -->
|
|
|
|
<!-- If the main javadoc Group listing includes an "Other -->
|
|
<!-- Packages" group after the ones listed here, then those -->
|
|
<!-- packages are not being matched by any of these rules -->
|
|
|
|
<group title="Core" packages="org.apache.*:org.apache.lucene.analysis:org.apache.lucene.analysis.standard*"/>
|
|
|
|
<group title="Demo" packages="org.apache.lucene.demo*"/>
|
|
|
|
<group title="contrib: Analysis" packages="org.apache.lucene.analysis.*"/>
|
|
<group title="contrib: Ant" packages="org.apache.lucene.ant*"/>
|
|
<group title="contrib: Benchmark" packages="org.apache.lucene.benchmark*"/>
|
|
<group title="contrib: Collation" packages="org.apache.lucene.collation*"/>
|
|
<group title="contrib: DB" packages="org.apache.lucene.store.db*:org.apache.lucene.store.je*:com.sleepycat*"/>
|
|
<group title="contrib: Fast Vector Highlighter" packages="org.apache.lucene.search.vectorhighlight*"/>
|
|
<group title="contrib: Highlighter" packages="org.apache.lucene.search.highlight*"/>
|
|
<group title="contrib: Instantiated" packages="org.apache.lucene.store.instantiated*"/>
|
|
<group title="contrib: Lucli" packages="lucli*"/>
|
|
<group title="contrib: Memory" packages="org.apache.lucene.index.memory*"/>
|
|
<group title="contrib: Miscellaneous " packages="org.apache.lucene.misc*:org.apache.lucene.queryParser.analyzing*:org.apache.lucene.queryParser.precedence*"/>
|
|
<group title="contrib: Queries" packages="org.apache.lucene.search.similar*"/>
|
|
<group title="contrib: Query Parser" packages="org.apache.lucene.queryParser*"/>
|
|
<group title="contrib: RegEx" packages="org.apache.lucene.search.regex*:org.apache.regexp*"/>
|
|
<group title="contrib: Snowball" packages="org.apache.lucene.analysis.snowball*:net.sf.snowball*"/>
|
|
<group title="contrib: Spatial" packages="org.apache.lucene.spatial*"/>
|
|
<group title="contrib: SpellChecker" packages="org.apache.lucene.search.spell*"/>
|
|
<group title="contrib: Surround Parser" packages="org.apache.lucene.queryParser.surround*"/>
|
|
<group title="contrib: Swing" packages="org.apache.lucene.swing*"/>
|
|
<group title="contrib: Wikipedia" packages="org.apache.lucene.wikipedia*"/>
|
|
<group title="contrib: WordNet" packages="org.apache.lucene.wordnet*"/>
|
|
<group title="contrib: XML Query Parser" packages="org.apache.lucene.xmlparser*"/>
|
|
|
|
</sources>
|
|
</invoke-javadoc>
|
|
</sequential>
|
|
</target>
|
|
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- D I S T R I B U T I O N -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="package" depends="jar-core, javadocs, war-demo, build-contrib, init-dist">
|
|
<copy file="${build.demo.template}" tofile="${build.dir}/build-demo.xml">
|
|
<filterset begintoken="@PLACEHOLDER_" endtoken="@">
|
|
<filter token="version" value="${version}"/>
|
|
<filter token="javac.source" value="${javac.source}"/>
|
|
<filter token="javac.target" value="${javac.target}"/>
|
|
</filterset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="nightly" depends="test, package-tgz, changes-to-html">
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Packages the distribution with zip -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="package-zip" depends="package"
|
|
description="--> Generates the Lucene distribution as .zip">
|
|
|
|
<delete file="${dist.dir}/lucene-${version}.zip"/>
|
|
<zip destfile="${dist.dir}/lucene-${version}.zip">
|
|
<zipfileset prefix="lucene-${version}" dir=".">
|
|
<patternset refid="binary.root.dist.patterns"/>
|
|
</zipfileset>
|
|
<zipfileset dir="${build.dir}" includes="build-demo.xml" fullpath="lucene-${version}/build.xml"/>
|
|
<zipfileset prefix="lucene-${version}" dir="${build.dir}">
|
|
<patternset refid="binary.build.dist.patterns"/>
|
|
</zipfileset>
|
|
</zip>
|
|
<lucene-checksum file="${dist.dir}/lucene-${version}.zip"/>
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- packages the distribution with tar-gzip -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="package-tgz" depends="package"
|
|
description="--> Generates the lucene distribution as .tar.gz">
|
|
|
|
<delete file="${build.dir}/lucene-${version}.tar"/>
|
|
<delete file="${dist.dir}/lucene-${version}.tar.gz"/>
|
|
<tar tarfile="${build.dir}/lucene-${version}.tar">
|
|
<tarfileset prefix="lucene-${version}" dir=".">
|
|
<patternset refid="binary.root.dist.patterns"/>
|
|
</tarfileset>
|
|
<tarfileset dir="${build.dir}" includes="build-demo.xml" fullpath="lucene-${version}/build.xml"/>
|
|
<tarfileset prefix="lucene-${version}" dir="${build.dir}">
|
|
<patternset refid="binary.build.dist.patterns"/>
|
|
</tarfileset>
|
|
</tar>
|
|
|
|
<gzip zipfile="${dist.dir}/lucene-${version}.tar.gz"
|
|
src="${build.dir}/lucene-${version}.tar"
|
|
/>
|
|
<lucene-checksum file="${dist.dir}/lucene-${version}.tar.gz"/>
|
|
</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 -->
|
|
<!-- ================================================================== -->
|
|
<target name="init-dist" >
|
|
|
|
<!-- Package is not called first if packaging src standalone, so the dist.dir may not exist -->
|
|
<mkdir dir="${build.dir}"/>
|
|
<mkdir dir="${dist.dir}"/>
|
|
<mkdir dir="${maven.dist.dir}"/>
|
|
</target>
|
|
<!-- ================================================================== -->
|
|
<!-- Packages the sources with zip -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="package-zip-src" depends="init, init-dist"
|
|
description="--> Generates the Lucene sources as .zip">
|
|
<zip destfile="${dist.dir}/lucene-${version}-src.zip">
|
|
<zipfileset prefix="lucene-${version}" dir=".">
|
|
<patternset refid="src.dist.patterns"/>
|
|
</zipfileset>
|
|
</zip>
|
|
<lucene-checksum file="${dist.dir}/lucene-${version}-src.zip"/>
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Packages the sources with tar-gzip -->
|
|
<!-- ================================================================== -->
|
|
<!-- -->
|
|
<!-- ================================================================== -->
|
|
<target name="package-tgz-src" depends="init, init-dist"
|
|
description="--> Generates the Lucene distribution as .tar.gz">
|
|
|
|
<delete file="${build.dir}/lucene-${version}-src.tar"/>
|
|
<delete file="${dist.dir}/lucene-${version}-src.tar.gz"/>
|
|
<tar tarfile="${build.dir}/lucene-${version}-src.tar">
|
|
<tarfileset prefix="lucene-${version}" dir=".">
|
|
<patternset refid="src.dist.patterns"/>
|
|
</tarfileset>
|
|
</tar>
|
|
|
|
<gzip zipfile="${dist.dir}/lucene-${version}-src.tar.gz"
|
|
src="${build.dir}/lucene-${version}-src.tar"
|
|
/>
|
|
<lucene-checksum file="${dist.dir}/lucene-${version}-src.tar.gz"/>
|
|
</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"/>
|
|
|
|
<target name="generate-maven-artifacts" depends="maven.ant.tasks-check, package, jar-src, jar-demo-src, javadocs">
|
|
<sequential>
|
|
<m2-deploy pom.xml="lucene-parent-pom.xml.template"/>
|
|
<m2-deploy pom.xml="lucene-core-pom.xml.template">
|
|
<artifact-attachments>
|
|
<attach file="${build.dir}/${final.name}-src.jar"
|
|
classifier="sources"/>
|
|
<attach file="${build.dir}/${final.name}-javadoc.jar"
|
|
classifier="javadoc"/>
|
|
</artifact-attachments>
|
|
</m2-deploy>
|
|
|
|
<m2-deploy pom.xml="lucene-demos-pom.xml.template">
|
|
<artifact-attachments>
|
|
<attach file="${build.dir}/${demo.name}-src.jar"
|
|
classifier="sources"/>
|
|
<attach file="${build.dir}/${demo.name}-javadoc.jar"
|
|
classifier="javadoc"/>
|
|
</artifact-attachments>
|
|
</m2-deploy>
|
|
|
|
<m2-deploy pom.xml="lucene-contrib-pom.xml.template"/>
|
|
<contrib-crawl target="dist-maven"/>
|
|
</sequential>
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Build the JavaCC files into the source tree -->
|
|
<!-- ================================================================== -->
|
|
<target name="jjdoc">
|
|
<mkdir dir="${build.dir}/docs/grammars"/>
|
|
<jjdoc target="src/java/org/apache/lucene/queryParser/QueryParser.jj"
|
|
outputfile="${build.dir}/docs/grammars/QueryParser.html"
|
|
javacchome="${javacc.home}"
|
|
/>
|
|
<jjdoc target="src/java/org/apache/lucene/analysis/standard/StandardTokenizer.jj"
|
|
outputfile="${build.dir}/docs/grammars/StandardTokenizer.html"
|
|
javacchome="${javacc.home}"
|
|
/>
|
|
<jjdoc target="src/demo/org/apache/lucene/demo/html/HTMLParser.jj"
|
|
outputfile="${build.dir}/docs/grammars/HTMLParser.html"
|
|
javacchome="${javacc.home}"
|
|
/>
|
|
</target>
|
|
|
|
<target name="clean-javacc">
|
|
<delete>
|
|
<fileset dir="src/java/org/apache/lucene/analysis/standard" includes="*.java">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
<exclude name="ParseException.java"/>
|
|
</fileset>
|
|
<fileset dir="src/java/org/apache/lucene/queryParser" includes="*.java">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
</fileset>
|
|
<fileset dir="contrib/queryparser/src/java/org/apache/lucene/queryParser/standard/parser" includes="*.java">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
</fileset>
|
|
<fileset dir="src/demo/org/apache/lucene/demo/html" includes="*.java">
|
|
<containsregexp expression="Generated.*By.*JavaCC"/>
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
|
|
<target name="javacc" depends="clean-javacc,javacc-QueryParser,javacc-HTMLParser,javacc-contrib-queryparser"/>
|
|
|
|
<target name="javacc-QueryParser" depends="init,javacc-check" if="javacc.present">
|
|
<invoke-javacc target="src/java/org/apache/lucene/queryParser/QueryParser.jj"
|
|
outputDir="src/java/org/apache/lucene/queryParser"
|
|
/>
|
|
</target>
|
|
|
|
<target name="javacc-HTMLParser" depends="init,javacc-check" if="javacc.present">
|
|
<invoke-javacc target="src/demo/org/apache/lucene/demo/html/HTMLParser.jj"
|
|
outputDir="src/demo/org/apache/lucene/demo/html"
|
|
/>
|
|
</target>
|
|
|
|
<target name="javacc-contrib-queryparser" depends="init,javacc-check" if="javacc.present">
|
|
<ant target="javacc"
|
|
dir="contrib/queryparser"
|
|
antfile="build.xml"
|
|
/>
|
|
</target>
|
|
|
|
<!-- ================================================================== -->
|
|
<!-- Build the JFlex files into the source tree -->
|
|
<!-- ================================================================== -->
|
|
|
|
<target name="jflex" depends="clean-jflex,jflex-StandardAnalyzer" />
|
|
|
|
<target name="jflex-StandardAnalyzer" depends="init,jflex-check" if="jflex.present">
|
|
<taskdef classname="JFlex.anttask.JFlexTask" name="jflex">
|
|
<classpath location="${jflex.home}/lib/JFlex.jar" />
|
|
</taskdef>
|
|
|
|
<jflex file="src/java/org/apache/lucene/analysis/standard/StandardTokenizerImpl.jflex"
|
|
outdir="src/java/org/apache/lucene/analysis/standard"
|
|
nobak="on" />
|
|
</target>
|
|
|
|
<target name="clean-jflex">
|
|
<delete>
|
|
<fileset dir="src/java/org/apache/lucene/analysis/standard" includes="*.java">
|
|
<containsregexp expression="generated.*by.*JFlex"/>
|
|
</fileset>
|
|
</delete>
|
|
</target>
|
|
|
|
<macrodef name="contrib-crawl">
|
|
<attribute name="target" default=""/>
|
|
<attribute name="failonerror" default="true"/>
|
|
<sequential>
|
|
<subant target="@{target}" failonerror="@{failonerror}">
|
|
<fileset dir="."
|
|
includes="contrib/*/build.xml"
|
|
/>
|
|
</subant>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="build-contrib"
|
|
description="Builds all contrib modules and their tests">
|
|
<contrib-crawl target="build-artifacts-and-tests"/>
|
|
</target>
|
|
|
|
<target name="test-contrib" depends="build-contrib">
|
|
<!-- Don't fail on error, instead check for flag file so we run
|
|
all the tests possible and can "ant generate-test-reports"
|
|
for all of them.
|
|
|
|
Because of this, we depend on "build-contrib" even though the
|
|
Individual contrib "test" targets probably have the
|
|
neccessary dependencies. If they fail to compile, we won't
|
|
know about it.
|
|
-->
|
|
<contrib-crawl target="test" failonerror="false"/>
|
|
<available property="contribs.failed" file="junitfailed.flag">
|
|
<filepath>
|
|
<dirset dir="${build.dir}/contrib/">
|
|
<include name="**/test/" />
|
|
</dirset>
|
|
</filepath>
|
|
</available>
|
|
<fail if="contribs.failed">Contrib tests failed!</fail>
|
|
</target>
|
|
|
|
<!-- Macro for building checksum files
|
|
This is only needed until the "format" option is supported
|
|
by ant's built in checksum task
|
|
-->
|
|
<macrodef name="lucene-checksum">
|
|
<attribute name="file"/>
|
|
<!-- NOTE: we use the value of @{file} in the names any properties
|
|
set because macro's don't have variables, and otherwise we
|
|
wouldn't be able to checksum more then one file per build
|
|
-->
|
|
<sequential>
|
|
<checksum file="@{file}"
|
|
property="@{file}.sum"
|
|
algorithm="${checksum.algorithm}" />
|
|
<basename file="@{file}" property="@{file}.base" />
|
|
<concat destfile="@{file}.${checksum.algorithm}"
|
|
force="yes"
|
|
append="false"
|
|
fixlastline="yes">
|
|
<header trimleading="yes">${@{file}.sum} </header>
|
|
<!-- empty fileset to trick concat -->
|
|
<fileset dir="." excludes="**" />
|
|
<footer trimleading="yes">${@{file}.base}
|
|
</footer>
|
|
</concat>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<!--
|
|
compile changes.txt into an html file
|
|
-->
|
|
|
|
<target name="changes-to-html">
|
|
<mkdir dir="${changes.target.dir}"/>
|
|
<exec executable="perl" input="CHANGES.txt" output="${changes.target.dir}/Changes.html" failonerror="true">
|
|
<arg value="${changes.src.dir}/changes2html.pl"/>
|
|
</exec>
|
|
<copy todir="${changes.target.dir}">
|
|
<fileset dir="${changes.src.dir}" includes="*.css"/>
|
|
</copy>
|
|
</target>
|
|
|
|
<!--
|
|
Committer helpers
|
|
-->
|
|
|
|
<property name="patch.file" value="${basedir}/../patches/${patch.name}"/>
|
|
<!-- Apply a patch. Assumes patch can be applied in the basedir.
|
|
-Dpatch.name assumes the patch is located in ${basedir}/../patches/${patch.name}
|
|
-Dpatch.file means the patch can be located anywhere on the file system
|
|
-->
|
|
<target name="apply-patch" depends="clean" description="Apply a patch file. Set -Dpatch.file, or -Dpatch.name when the patch is in the directory ../patches/">
|
|
<patch patchfile="${patch.file}" strip="0"/>
|
|
</target>
|
|
|
|
<target name="rat-sources-typedef">
|
|
<typedef resource="org/apache/rat/anttasks/antlib.xml" uri="antlib:rat.anttasks">
|
|
<classpath>
|
|
<fileset dir="." includes="rat*.jar"/>
|
|
</classpath>
|
|
</typedef>
|
|
</target>
|
|
|
|
<target name="rat-sources" depends="rat-sources-typedef"
|
|
description="runs the tasks over src/java">
|
|
<rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
|
|
<fileset dir="src/java">
|
|
</fileset>
|
|
</rat:report>
|
|
</target>
|
|
|
|
</project>
|