<?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
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="solr" default="usage">
<description>Solr</description>
<target name="usage" description="Prints out instructions">
<echo message="Welcome to the Solr project!" />
<echo message="Use 'ant example' to create a runnable example configuration." />
<echo message="Use 'ant run-example' to create and run the example." />
<echo message="And for developers:"/>
<echo message="Use 'ant clean' to clean compiled files." />
<echo message="Use 'ant compile' to compile the source code." />
<echo message="Use 'ant dist' to build the project WAR and JAR files." />
<echo message="Use 'ant generate-maven-artifacts' to generate maven artifacts." />
<echo message="Use 'ant package' to generate zip, tgz for distribution." />
<echo message="Use 'ant luke' to start luke. see: http://luke.googlecode.com" />
<echo message="Use 'ant test' to run unit tests." />
</target>
<import file="common-build.xml"/>
<!-- ========================================================================= -->
<!-- ============================== USER TASKS =============================== -->
<!-- ========================================================================= -->
<target name="example" description="Creates a runnable example configuration."
depends="resolve-example,dist-contrib,dist-war">
<copy file="${dist}/${fullnamever}.war"
tofile="${example}/webapps/${ant.project.name}.war"/>
<jar destfile="${example}/exampledocs/post.jar"
includes="org/apache/solr/util/SimplePostTool*.class">
<manifest>
</manifest>
</jar>
<delete includeemptydirs="true">
<fileset dir="${example}/work" includes="**/*"/>
</delete>
</target>
<!-- example-DIH needs hsqldb. don't put anything here needed by *tests* -->
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<target name="run-example" depends="example"
description="Run Solr interactively, via Jetty. -Dexample.debug=true to enable JVM debugger">
<condition property="example.jvm.line" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=${example.debug.suspend},address=5005">
<isset property="example.debug"/>
</condition>
<jvmarg line="${example.jvm.line}"/>
</java>
</target>
<!-- setup proxy for download tasks -->
<condition property="proxy.specified">
<or>
<isset property="proxy.host"/>
<isset property="proxy.port"/>
<isset property="proxy.user"/>
</or>
</condition>
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" proxyuser="${proxy.user}" proxypassword="${proxy.password}"/>
</target>
<target name="compile-xml-query-parser">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<target name="luke-download" unless="luke.jar.exists" depends="proxy.setup,compile-xml-query-parser">
<mkdir dir="luke"/>
<get src="http://luke.googlecode.com/files/luke-${luke.version}.jar"
dest="luke/luke-${luke.version}.jar"/>
</target>
<path id="luke.classpath">
<pathelement location="${common.dir}/build/core/classes/java" />
<pathelement location="${common.dir}/build/contrib/xml-query-parser/classes/java" />
</path>
<target name="luke" depends="luke-download">
<java fork="true"
logError="true"
failonerror="true">
<classpath>
<fileset dir="luke">
<include name="luke-${luke.version}.jar"/>
</fileset>
<path refid="classpath"/>
<path refid="luke.classpath"/>
<path refid="test.classpath"/>
</classpath>
</java>
</target>
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<target name="compile" description="Compile the source code."
depends="compile-core, compile-contrib"/>
<target name="test" description="Validate, then run core, solrj, and contrib unit tests."
depends="validate, test-jsp, test-core, test-contrib"/>
<target name="test-core" description="Runs the core and solrj unit tests."
depends="test-solr-core, test-solrj"/>
<target name="compile-test" description="Compile unit tests."
depends="compile-solr-test-framework, compile-test-solr-core, compile-test-solrj, compile-test-contrib"/>
<target name="javadocs" description="Calls javadocs-all, javadocs-solrj, and javadocs-test-framework"
depends="javadocs-all,javadocs-solrj,javadocs-test-framework"/>
<!-- Solr core targets -->
<target name="test-solr-core" description="Test solr core">
<ant dir="core" target="test" inheritAll="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<!-- Solrj targets -->
<target name="test-solrj" description="Test java client">
<ant dir="solrj" target="test" inheritAll="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<target name="javadocs-solrj">
<ant dir="solrj" target="javadocs" inheritAll="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<!-- Solr contrib targets -->
<target name="test-contrib" description="Run contrib unit tests.">
<contrib-crawl target="test" failonerror="true"/>
</target>
<!-- test-framework targets -->
<target name="javadocs-test-framework">
<ant dir="test-framework" target="javadocs" inheritAll="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<!-- Webapp targets -->
<target name="test-jsp">
<ant dir="webapp" target="test" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<!-- Validation (license/ notice checks). -->
<target name="validate" depends="compile-tools,resolve" description="Validate legal stuff.">
<license-check-macro dir="${basedir}">
<additional-excludes>
<!-- Exclude start.jar only (it'd be weird to have a license file there?) -->
<exclude name="example/exampledocs/post.jar" />
</additional-excludes>
<additional-filters>
<replaceregex pattern="/hppc([^/]+)$" replace="/hppc" flags="gi" />
<replaceregex pattern="/langdetect([^/]+)$" replace="/langdetect" flags="gi" />
<replaceregex pattern="/geronimo-stax([^/]+)$" replace="/geronimo-stax" flags="gi" />
<replaceregex pattern="/jetty-util([^/]+)$" replace="/jetty-util" flags="gi" />
<replaceregex pattern="/jetty-6([^/]+)$" replace="/jetty" flags="gi" />
<replaceregex pattern="/jsp-2.1-glassfish([^/]+)$" replace="/jsp-2.1-glassfish" flags="gi" />
<replaceregex pattern="/jsp-api-2.1-glassfish([^/]+)$" replace="/jsp-api-2.1-glassfish" flags="gi" />
<replaceregex pattern="/apache-solr-commons-csv-([^/]+)$" replace="/apache-solr-commons-csv" flags="gi" />
<replaceregex pattern="/slf4j-([^/]+)$" replace="/slf4j" flags="gi" />
<replaceregex pattern="/(bcmail|bcprov)-([^/]+)$" replace="/\1" flags="gi" />
</additional-filters>
</license-check-macro>
</target>
<!-- rat sources -->
<target name="rat-sources">
<sequential>
<ant dir="core" target="rat-sources" inheritall="false"/>
<ant dir="solrj" target="rat-sources" inheritall="false"/>
<ant dir="test-framework" target="rat-sources" inheritall="false"/>
<contrib-crawl target="rat-sources" failonerror="true"/>
</sequential>
</target>
<!-- Clean targets -->
<target name="clean" description="Cleans compiled files and other temporary artifacts.">
<delete dir="build" />
<delete dir="dist" />
<delete dir="package" />
<delete includeemptydirs="true">
<fileset dir="example">
<include name="**/data/**/*" />
<include name="webapps/**/*" />
<include name="work/**/*" />
<exclude name="**/.gitignore" />
</fileset>
</delete>
</target>
<target name="clean-dest"
description="Cleans out build/ but leaves build/docs/, dist/ and package/ alone. This allows us to run nightly and clover together in Hudson">
<delete includeemptydirs="true" >
<fileset dir="build">
<exclude name="docs/"/>
</fileset>
</delete>
</target>
<!-- Clover targets -->
description="Instrument the Unit tests using Clover. Requires a Clover license and clover.jar in the ANT classpath. To use, specify -Drun.clover=true on the command line."/>
<taskdef resource="cloverlib.xml"/>
<mkdir dir="${clover.db.dir}"/>
<fileset dir="contrib/analysis-extras/src/java"/>
<fileset dir="contrib/clustering/src/java"/>
<fileset dir="contrib/dataimporthandler/src/java"/>
<fileset dir="contrib/dataimporthandler-extras/src/java"/>
<fileset dir="contrib/extraction/src/java"/>
<testsources dir="test-framework/src/java"/>
<testsources dir="contrib/analysis-extras/src/test" />
<testsources dir="contrib/clustering/src/test" />
<testsources dir="contrib/dataimporthandler/src/test" />
<testsources dir="contrib/dataimporthandler-extras/src/test" />
<testsources dir="contrib/extraction/src/test" />
</clover-setup>
</target>
<echo>
Clover not found. Code coverage reports disabled.
</echo>
</target>
<target name="clover.check">
<fail unless="clover.present">
##################################################################
Clover not found.
to Ant using other mechanisms like -lib or CLASSPATH.
##################################################################
</fail>
</target>
<!-- Run after Junit tests. -->
<mkdir dir="${clover.report.dir}"/>
<clover-report>
<current outfile="${clover.report.dir}/clover.xml"
title="${fullnamever}">
<format type="xml"/>
</current>
<format type="html"/>
</current>
</clover-report>
</target>
<!-- ========================================================================= -->
<!-- ===================== DISTRIBUTION-RELATED TASKS ======================== -->
<!-- ========================================================================= -->
<target name="copy-to-stage">
</target>
<target name="dist"
description="Creates the Solr distribution files."
depends="dist-solrj, dist-core, dist-test-framework, dist-contrib, dist-war" />
<target name="dist-test-framework" depends="init-dist"
description="Creates the Solr test-framework JAR.">
<ant dir="test-framework" target="dist" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<target name="dist-contrib" depends="init-dist"
description="Make the contribs ready for distribution">
<contrib-crawl target="dist" failonerror="true" />
</target>
<target name="dist-war"
description="Creates the Solr WAR Distribution file.">
<ant dir="webapp" target="dist" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
</target>
<target name="dist-war-excl-slf4j"
description="Creates a Solr WAR Distribution file, excluding slf4j bindings.">
<ant dir="webapp" target="dist" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
<property name="exclude.from.war" value="*over-slf4j*,slf4j-jdk14*,httpclient-*,httpcore-*,httpmime-*" />
</ant>
</target>
<target name="prepare-release"
depends="clean, package, generate-maven-artifacts, sign-artifacts"/>
<!-- make a distribution -->
<target name="package" depends="package-src-tgz,create-package"/>
<!-- Makes a tarball from running "svn export" at the root level. -->
<!-- Copies NOTICE.txt and LICENSE.txt from solr/ to the root level. -->
<target name="package-src-tgz" depends="init-dist"
description="Packages the Solr Source Distribution">
<property name="source.package.file"
value="${package.dir}/${fullnamever}-src.tgz"/>
<!-- Exclude javadoc package-list files under licenses incompatible with the ASL -->
<delete dir="${svn.export.dir}/lucene/tools/javadoc/java5"/>
<tarfileset dir="${svn.export.dir}"
prefix="${fullnamever}"
excludes="example/**/*.sh example/**/bin/"/>
<tarfileset dir="${svn.export.dir}"
prefix="${fullnamever}"
filemode="755"
includes="example/**/*.sh example/**/bin/"/>
includes="NOTICE.txt,LICENSE.txt"/>
</tar>
</target>
<target name="package-local-src-tgz"
description="Packages the Solr and Lucene sources from the local working copy">
<mkdir dir="${common-solr.dir}/build"/>
<property name="source.package.file"
value="${common-solr.dir}/build/${fullnamever}-src.tgz"/>
<tarfileset dir=".." prefix="${fullnamever}" includes="*.txt *.xml dev-tools/" />
<tarfileset dir="." prefix="${fullnamever}/solr"
excludes="build ${package.dir}/** ${dist}/**
example/webapps/*.war example/exampledocs/post.jar
lib/README.committers.txt **/data/ **/logs/*
**/*.sh **/bin/ scripts/
.idea/ **/*.iml **/pom.xml" />
<tarfileset dir="." prefix="${fullnamever}/solr"
includes="core/src/test-files/solr/lib/classes/empty-file-main-lib.txt" />
<tarfileset dir="." filemode="755" prefix="${fullnamever}/solr"
includes="**/*.sh **/bin/ scripts/"
excludes="build/**"/>
<patternset refid="lucene.local.src.package.patterns"/>
</tarfileset>
</tar>
</target>
<target name="create-package"
description="Packages the Solr Binary Distribution"
depends="init-dist, dist, example, javadocs">
<mkdir dir="${dest}/${fullnamever}"/>
<delete includeemptydirs="true">
<fileset dir="${example}/work" includes="**/*"/>
<fileset dir="${dest}/${fullnamever}" includes="**/*"/>
</delete>
<mkdir dir="${dest}/contrib-lucene-libs-to-package"/>
<delete dir="${dest}/contrib-lucene-libs-to-package" includes="**/*"/>
<contrib-crawl target="add-lucene-libs-to-package"/>
<tarfileset dir="."
prefix="${fullnamever}"
includes="LICENSE.txt NOTICE.txt CHANGES.txt README.txt example/**
client/README.txt client/ruby/solr-ruby/** contrib/**/lib/**
contrib/**/README.txt contrib/**/CHANGES.txt"
excludes="lib/README.committers.txt **/data/ **/logs/*
**/bin/ **/*.iml **/*.ipr **/*.iws **/pom.xml
**/*pom.xml.template **/*.sha1" />
<tarfileset dir="${dest}/contrib-lucene-libs-to-package"
prefix="${fullnamever}"
includes="**" />
<tarfileset dir="."
filemode="755"
prefix="${fullnamever}"
includes="example/**/*.sh example/**/bin/" />
<tarfileset dir="."
prefix="${fullnamever}"
excludes="**/*.tgz **/*.zip **/*.md5 **/*src*.jar **/*docs*.jar **/*.sha1" />
<tarfileset dir="${dest}/docs"
prefix="${fullnamever}/docs" />
</tar>
<!--
This is a list of text file patterns to convert to CRLF line-ending style.
Shell scripts and files included in shell scripts should not be converted.
NB: The line-ending conversion process will mangle non-UTF8-encoded files.
-->
<fixcrlf srcdir="${dest}/${fullnamever}"
encoding="UTF-8"
eol="crlf"
includes="**/*.alg **/*.cfg **/*.cgi **/*.cpp **/*.css **/*.csv **/*.dtd
**/*.erb **/*.fcgi **/.htaccess **/*.htm **/*.html **/*.incl
**/*.java **/*.javacc **/*.jflex **/*.jflex-macro **/*.jj
**/*.js **/*.json **/*.jsp **/*LICENSE **/package-list **/*.pl
**/*.pom **/*pom.xml.template **/*.properties **/*.py
**/*.rake **/Rakefile **/*.rb **/*.rbbi **/README* **/*.rhtml
**/*.rslp **/*.rxml **/*.script **/*.svg **/*.tsv **/*.txt
**/UPGRADING **/USAGE **/*.uxf **/*.vm **/*.xcat **/*.xml
**/*.xsl **/*.xslt **/*.yml"
excludes="**/stopwordsWrongEncoding.txt **/gb18030-example.xml"
/>
<zip destfile="${package.dir}/${fullnamever}.zip">
<zipfileset dir="${dest}/${fullnamever}"
prefix="${fullnamever}"
<zipfileset dir="${dest}/${fullnamever}"
prefix="${fullnamever}"
filemode="755" />
</zip>
</target>
<target name="sign-artifacts">
</target>
<target name="javadocs-dep">
<!-- NOOP -->
</target>
<target name="resolve" depends="resolve-example,resolve-jetty">
<sequential>
<ant dir="core" target="resolve" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
<ant dir="solrj" target="resolve" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
<ant dir="test-framework" target="resolve" inheritall="false">
<propertyset refid="uptodate.and.compiled.properties"/>
</ant>
<contrib-crawl target="resolve"/>
</sequential>
</target>
<!-- since we build across all contribs, we must ensure all deps
are resolved -->
<target name="javadocs-all"
depends="resolve,prep-lucene-jars,javadocs-dep,define-lucene-javadoc-url"
description="Generate javadoc for core, java client and contrib">
<sequential>
<!-- TODO: optimize this, thats stupid here: -->
<subant target="contrib-jars-to-solr">
</subant>
<path id="javadoc.classpath">
<path refid="classpath"/>
<fileset dir="${dest}/contrib">
<include name="**/lucene-libs/**/*.jar"/>
</fileset>
<fileset dir="contrib">
<include name="**/lib/**/*.jar"/>
</fileset>
<pathelement location="${dest}/solr-solrj/classes/java"/>
</path>
overview="core/src/java/overview.html">
<sources>
packagelistloc="${common.dir}/build/docs/api/all/"/>
<packageset dir="contrib/analysis-extras/src/java"/>
<packageset dir="contrib/clustering/src/java"/>
<packageset dir="contrib/dataimporthandler/src/java"/>
<packageset dir="contrib/dataimporthandler-extras/src/java"/>
<packageset dir="contrib/extraction/src/java"/>
<group title="contrib: Solr LangId" packages="org.apache.solr.update.processor.LanguageIdentifier*,org.apache.solr.update.processor.LangIdParams*,org.apache.solr.update.processor.DetectedLanguage*" />
</sources>
</invoke-javadoc>
</sequential>
</target>
<target name="generate-maven-artifacts" depends="install-maven-tasks">
<sequential>
<subant target="dist-maven" inheritall="false" >
<propertyset refid="uptodate.and.compiled.properties"/>
</subant>
<contrib-crawl target="dist-maven"/>
</sequential>
</target>
<!-- ========================================================================= -->
<!-- ========================= COMMITTERS' HELPERS =========================== -->
<!-- ========================================================================= -->
<target name="stub-factories" depends="dist-core,lucene-jars-to-solr"
description="Generates stub factories as needed">
<path id="stub.jars">
<!-- this needs to be a list of all jars that might contain
classes we want to build factories for
-->
<fileset dir="${lucene-libs}">
<include name="*.jar"/>
</fileset>
<fileset dir="${dist}">
<include name="*.jar"/>
<exclude name="*solrj*.jar"/>
</fileset>
</path>
<path id="missing.factories.classpath">
<pathelement path="${common.dir}/contrib/queries/lib/jakarta-regexp-1.4.jar"/>
<path refid="test.classpath"/>
</path>
<java fork="false"
classname="org.apache.solr.util.SuggestMissingFactories"
logError="true"
failonerror="true"
classpathref="missing.factories.classpath"
output="${stub.list}">
<arg line="${jar.list}" />
</java>
<fail unless="stub.src.path">...
This task requires that the property 'stub.src.path' be set.
It must contain a "path" listing directories containing source
files that this task should use when looking for classes that
need factories created, the format is platform specific --
typically it is colon seperated in Unix, semi-colon seperated
on windows, ie:
FYI: The file ${stub.list} contains a list of classes
that seem to need stub factories. (if java files can be found to
use as guides for creating them).
</fail>
<path>
<pathelement path="${stub.src.path}"/>
</path>
</pathconvert>
<exec executable="perl"
failonerror="true">
<arg value="${common-solr.dir}/dev-tools/stub-analysis-factory-maker.pl"/>
<redirector input="${stub.list}">
<!-- place to put special case classes we want to ignore -->
<inputfilterchain>
<linecontainsregexp negate="true">
<!-- only for internal Solr highlighting purposes -->
<regexp pattern="TokenOrderingFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage this in Solr -->
<regexp pattern="CachingTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage this in Solr -->
<regexp pattern="HyphenationCompoundWordTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- no way to leverage these in Solr (yet) -->
<regexp pattern="Sink|Tee"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- Solr already has a different impl for this -->
<regexp pattern="SynonymTokenFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- solr and lucene both have one? ? ? ? -->
<regexp pattern="LengthFilter"/>
</linecontainsregexp>
<linecontainsregexp negate="true">
<!-- solr provides it's own SnowballPorterFilter variant -->
<regexp pattern="SnowballFilter"/>
</linecontainsregexp>
</inputfilterchain>
</redirector>
<arg line="${stub.src.dirs}"/>
</exec>
</target>
<target name="svn-up">
<exec executable="${svn.exe}">
<arg value="update"/>
</exec>
</target>
<property name="analysis-common.res.dir" value="/lucene/contrib/analyzers/common/src/resources/org/apache/lucene/analysis"/>
<property name="analysis-kuromoji.res.dir" value="/lucene/contrib/analyzers/kuromoji/src/resources/org/apache/lucene/analysis"/>
<target name="sync-analyzers"
description="Committers' Helper: synchronizes analysis resources (e.g. stoplists) to the example">
<!-- arabic -->
tofile="${analysis.conf.dest}/stopwords_ar.txt"/>
<!-- bulgarian -->
tofile="${analysis.conf.dest}/stopwords_bg.txt"/>
<!-- catalan -->
tofile="${analysis.conf.dest}/stopwords_ca.txt"/>
<!-- czech -->
tofile="${analysis.conf.dest}/stopwords_cz.txt"/>
<!-- danish -->
tofile="${analysis.conf.dest}/stopwords_da.txt"/>
<!-- german -->
tofile="${analysis.conf.dest}/stopwords_de.txt"/>
<!-- greek -->
tofile="${analysis.conf.dest}/stopwords_el.txt"/>
<!-- spanish -->
tofile="${analysis.conf.dest}/stopwords_es.txt"/>
<!-- basque -->
tofile="${analysis.conf.dest}/stopwords_eu.txt"/>
<!-- persian -->
tofile="${analysis.conf.dest}/stopwords_fa.txt"/>
<!-- finnish -->
tofile="${analysis.conf.dest}/stopwords_fi.txt"/>
<!-- french -->
tofile="${analysis.conf.dest}/stopwords_fr.txt"/>
<!-- irish -->
tofile="${analysis.conf.dest}/stopwords_ga.txt"/>
<!-- galician -->
tofile="${analysis.conf.dest}/stopwords_gl.txt"/>
<!-- hindi -->
tofile="${analysis.conf.dest}/stopwords_hi.txt"/>
<!-- hungarian -->
tofile="${analysis.conf.dest}/stopwords_hu.txt"/>
<!-- armenian -->
tofile="${analysis.conf.dest}/stopwords_hy.txt"/>
<!-- indonesian -->
tofile="${analysis.conf.dest}/stopwords_id.txt"/>
<!-- italian -->
tofile="${analysis.conf.dest}/stopwords_it.txt"/>
<!-- japanese -->
tofile="${analysis.conf.dest}/stopwords_ja.txt"/>
tofile="${analysis.conf.dest}/stoptags_ja.txt"/>
<!-- latvian -->
tofile="${analysis.conf.dest}/stopwords_lv.txt"/>
<!-- dutch -->
tofile="${analysis.conf.dest}/stopwords_nl.txt"/>
<!-- norwegian -->
tofile="${analysis.conf.dest}/stopwords_no.txt"/>
<!-- portuguese -->
tofile="${analysis.conf.dest}/stopwords_pt.txt"/>
<!-- romanian -->
tofile="${analysis.conf.dest}/stopwords_ro.txt"/>
<!-- russian -->
tofile="${analysis.conf.dest}/stopwords_ru.txt"/>
<!-- swedish -->
tofile="${analysis.conf.dest}/stopwords_sv.txt"/>
<!-- thai -->
tofile="${analysis.conf.dest}/stopwords_th.txt"/>
<!-- turkish -->
tofile="${analysis.conf.dest}/stopwords_tr.txt"/>
</target>
<!-- TODO: in the future, we don't need to actually put
jars in the lib/ folders, but can just put in classpath.
only packaging tasks really need that (and could do it
under build/ directories) -->
<target name="clean-jars" description="Clean local jars">
<delete>
<fileset dir="." includes="**/*.jar"/>
</delete>
</target>
</project>