| <!-- |
| 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="common-solr" default="default"> |
| <description> |
| This file is designed for importing into a main build file, and not intended |
| for standalone use. |
| </description> |
| |
| <dirname file="${ant.file.common-solr}" property="common-solr.dir"/> |
| |
| <property name="Name" value="Solr" /> |
| <property name="version" value="3.5-SNAPSHOT"/> |
| <property name="fullname" value="apache-${ant.project.name}"/> |
| <property name="fullnamever" value="${fullname}-${version}"/> |
| <property name="final.name" value="${fullnamever}"/> |
| |
| <property name="dest" value="${common-solr.dir}/build" /> |
| <property name="build.dir" location="${dest}/${ant.project.name}"/> |
| <property name="dist" location="${common-solr.dir}/dist"/> |
| <property name="package.dir" location="${common-solr.dir}/package"/> |
| <property name="maven.dist.dir" location="${package.dir}/maven"/> |
| <property name="lucene-libs" location="${dest}/lucene-libs" /> |
| <property name="manifest.file" location="${dest}/META-INF/MANIFEST.MF"/> |
| <property name="tests.userdir" value="src/test-files"/> |
| <property name="example" value="${common-solr.dir}/example" /> |
| <property name="javadoc.dir" location="${build.dir}/docs/api"/> |
| <property name="javadoc.link" value="http://java.sun.com/javase/6/docs/api/"/> |
| <property name="tests.loggingfile" value="${common-solr.dir}/testlogging.properties"/> |
| <property name="tests.threadspercpu" value="2"/> |
| <property name="tests.cleanthreads.sysprop" value="perClass"/> |
| |
| <property name="clover.db.dir" location="${dest}/tests/clover/db"/> |
| <property name="clover.report.dir" location="${dest}/tests/clover/reports"/> |
| <available property="clover.present" classname="com.cenqua.clover.tasks.CloverReportTask"/> |
| <condition property="clover.enabled"> |
| <and> |
| <isset property="run.clover"/> |
| <isset property="clover.present"/> |
| </and> |
| </condition> |
| |
| <path id="additional.dependencies"> |
| <fileset dir="${common-solr.dir}/lib" includes="**/*.jar"/> |
| <fileset dir="${common-solr.dir}/example/lib" includes="**/*.jar"/> |
| <fileset dir="lib" includes="**/*.jar" erroronmissingdir="false"/> |
| </path> |
| |
| <pathconvert property="project.classpath" targetos="unix" refid="additional.dependencies"/> |
| |
| <import file="${common-solr.dir}/../lucene/contrib/contrib-build.xml"/> |
| |
| <!-- Solr Specification Version |
| |
| This will be used in the Manifest file, and therefore must |
| match the pattern "digit+{.digit+}*" |
| |
| By default, this should be set to "X.Y.M.${dateversion}" |
| where X.Y.M is the last version released (on this branch). |
| --> |
| <property name="solr.spec.version" value="3.5.0.${dateversion}" /> |
| |
| <path id="solr.base.classpath"> |
| <pathelement path="${analyzers-common.jar}"/> |
| <pathelement path="${highlighter.jar}"/> |
| <pathelement path="${memory.jar}"/> |
| <pathelement path="${misc.jar}"/> |
| <pathelement path="${spatial.jar}"/> |
| <pathelement path="${spellchecker.jar}"/> |
| <pathelement path="${grouping.jar}"/> |
| <pathelement path="${queries.jar}"/> |
| <pathelement location="${common-solr.dir}/build/solr-solrj/classes/java"/> |
| <pathelement location="${common-solr.dir}/build/solr-core/classes/java"/> |
| <path refid="base.classpath"/> |
| </path> |
| |
| <path id="classpath" refid="solr.base.classpath"/> |
| |
| <path id="solr.test.base.classpath"> |
| <pathelement path="${common-solr.dir}/build/solr-test-framework/classes/java"/> |
| <pathelement path="${tests.userdir}"/> |
| <path refid="test.base.classpath"/> |
| </path> |
| |
| <path id="test.classpath" refid="solr.test.base.classpath"/> |
| |
| <macrodef name="solr-contrib-uptodate"> |
| <attribute name="name"/> |
| <attribute name="property" default="@{name}.uptodate"/> |
| <attribute name="classpath.property" default="@{name}.jar"/> |
| <!-- set jarfile only, if the target jar file has no generic name --> |
| <attribute name="jarfile" default="${common-solr.dir}/build/contrib/solr-@{name}/apache-solr-@{name}-${version}.jar"/> |
| <sequential> |
| <!--<echo message="Checking '@{jarfile}' against source folder '${common.dir}/contrib/@{name}/src/java'"/>--> |
| <property name="@{classpath.property}" location="@{jarfile}"/> |
| <uptodate property="@{property}" targetfile="@{jarfile}"> |
| <srcfiles dir="${common-solr.dir}/contrib/@{name}/src/java" includes="**/*.java"/> |
| </uptodate> |
| </sequential> |
| </macrodef> |
| |
| <target name="validate" depends="validate-solr"/> |
| <target name="validate-solr" depends="check-legal-solr" unless="validated-solr.uptodate"/> |
| |
| <target name="check-legal-solr" depends="compile-tools"> |
| <java classname="org.apache.lucene.validation.DependencyChecker" failonerror="true" fork="true"> |
| <classpath> |
| <path refid="tools.runtime.classpath" /> |
| </classpath> |
| <!-- TODO: it might be better to just automatically find all directories that contain jar files, but that could take a |
| long time. This should be faster, but we could miss a directory |
| --> |
| <!-- Solr --> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/analysis-extras/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/clustering/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/dataimporthandler/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/dataimporthandler-extras/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/extraction/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/contrib/uima/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/example/example-DIH/solr/db/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/example/example-DIH/solr/mail/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/example/example/lib" /> |
| <arg value="-c" /> |
| <arg value="${common-solr.dir}/core/src/test-files/solr/lib" /> |
| </java> |
| <property name="validated-solr.uptodate" value="true"/> |
| </target> |
| <path id="tools.runtime.classpath"> |
| <pathelement location="${common.dir}/build/classes/tools"/> |
| </path> |
| |
| <target name="init-dist" > |
| <mkdir dir="${build.dir}"/> |
| <mkdir dir="${package.dir}"/> |
| <mkdir dir="${dist}"/> |
| <mkdir dir="${maven.dist.dir}"/> |
| </target> |
| |
| <target name="prep-lucene-jars" |
| depends="jar-lucene-core, jar-analyzers-common, jar-spellchecker, jar-highlighter, |
| jar-memory, jar-misc, jar-spatial, jar-grouping, jar-queries"/> |
| |
| <target name="lucene-jars-to-solr" depends="prep-lucene-jars"> |
| <sequential> |
| <copy todir="${lucene-libs}" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <fileset file="${lucene-core.jar}" /> |
| <fileset file="${analyzers-common.jar}" /> |
| <fileset file="${spellchecker.jar}" /> |
| <fileset file="${grouping.jar}" /> |
| <fileset file="${queries.jar}" /> |
| <fileset file="${highlighter.jar}" /> |
| <fileset file="${memory.jar}" /> |
| <fileset file="${misc.jar}" /> |
| <fileset file="${spatial.jar}" /> |
| </copy> |
| </sequential> |
| </target> |
| |
| <!-- Shared core/solrj/test-framework/contrib targets --> |
| <target name="jar-core" depends="compile-core"> |
| <mkdir dir="${dest}/META-INF/"/> |
| <jarify title="Apache Solr Search Server: ${ant.project.name}" |
| metainf.source.dir="${common-solr.dir}" |
| implementation.title="org.apache.solr" |
| spec.version="${solr.spec.version}"/> |
| </target> |
| |
| <target name="compile-core" depends="prep-lucene-jars,common.compile-core"/> |
| <target name="compile-test" depends="compile-solr-test-framework,common.compile-test"/> |
| |
| <target name="dist" depends="jar-core"> |
| <copy file="${build.dir}/${fullnamever}.jar" todir="${dist}"/> |
| </target> |
| |
| <target name="javadocs" depends="compile-core"> |
| <sequential> |
| <mkdir dir="${javadoc.dir}"/> |
| <mkdir dir="${dest}/META-INF/"/> |
| <invoke-javadoc destdir="${javadoc.dir}" |
| title="${Name} ${version} ${name} API"> |
| <sources> |
| <link href=""/> |
| <packageset dir="${src.dir}"/> |
| </sources> |
| </invoke-javadoc> |
| <jarify basedir="${javadoc.dir}" |
| destfile="${build.dir}/${final.name}-javadoc.jar" |
| title="Apache Solr Search Server: ${ant.project.name}" |
| metainf.source.dir="${common-solr.dir}" |
| implementation.title="org.apache.solr" |
| spec.version="${solr.spec.version}"/> |
| </sequential> |
| </target> |
| |
| <target name="jar-src" depends="init"> |
| <jarify basedir="${src.dir}" |
| destfile="${build.dir}/${final.name}-src.jar" |
| implementation.title="org.apache.solr" |
| metainf.source.dir="${common-solr.dir}" |
| spec.version="${solr.spec.version}"/> |
| </target> |
| |
| <!-- Solr core targets --> |
| <target name="compile-solr-core" description="Compile Solr core." unless="solr.core.compiled"> |
| <ant dir="${common-solr.dir}/core" target="compile-core" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solr.core.compiled" value="true"/> |
| </target> |
| <target name="compile-test-solr-core" description="Compile solr core tests"> |
| <ant dir="${common-solr.dir}/core" target="compile-test" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solr.core.compiled" value="true"/> |
| </target> |
| <target name="dist-core" depends="init-dist" |
| description="Creates the Solr JAR Distribution file."> |
| <ant dir="${common-solr.dir}/core" target="dist" inheritall="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <!-- Solrj targets --> |
| <target name="compile-solrj" description="Compile the java client." unless="solrj.compiled"> |
| <ant dir="${common-solr.dir}/solrj" target="compile-core" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solrj.compiled" value="true"/> |
| </target> |
| <target name="compile-test-solrj" description="Compile java client tests"> |
| <ant dir="${common-solr.dir}/solrj" target="compile-test" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solrj.compiled" value="true"/> |
| </target> |
| <target name="dist-solrj" depends="init-dist" |
| description="Creates the Solr-J JAR Distribution file."> |
| <ant dir="${common-solr.dir}/solrj" target="dist" inheritall="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <!-- Solr test-framework targets --> |
| <target name="compile-solr-test-framework" description="Compile the Solr test-framework" unless="solr.test.framework.compiled"> |
| <ant dir="${common-solr.dir}/test-framework" target="compile-core" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solr.core.compiled" value="true"/> |
| <property name="solr.test.framework.compiled" value="true"/> |
| </target> |
| |
| <!-- Solr contrib targets --> |
| <target name="compile-contrib" description="Compile contrib modules"> |
| <contrib-crawl target="compile-core"/> |
| </target> |
| <target name="compile-test-contrib" description="Compile contrib modules' tests"> |
| <contrib-crawl target="compile-test"/> |
| </target> |
| |
| <target name="contribs-add-to-war"> |
| <mkdir dir="${dest}/web"/> |
| <delete dir="${dest}/web" includes="**/*" failonerror="false"/> |
| <contrib-crawl target="add-to-war"/> |
| </target> |
| </project> |