| <!-- |
| 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" xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors"> |
| <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" /> |
| |
| <!-- solr uses Java 11 --> |
| <property name="javac.release" value="11"/> |
| <property name="javac.args" value="-Xlint:-deprecation"/> |
| <property name="javac.profile.args" value=""/> |
| |
| <property name="dest" location="${common-solr.dir}/build" /> |
| <property name="build.dir" location="${dest}/${ant.project.name}"/> |
| <property name="jacoco.report.dir" location="${dest}/jacoco"/> |
| <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="tests.userdir" location="src/test-files"/> |
| <property name="tests.policy" location="${common-solr.dir}/../lucene/tools/junit4/solr-tests.policy"/> |
| <property name="server.dir" location="${common-solr.dir}/server" /> |
| <property name="example" location="${common-solr.dir}/example" /> |
| <property name="javadoc.dir" location="${dest}/docs"/> |
| <property name="javadoc-online.dir" location="${dest}/docs-online"/> |
| <property name="tests.cleanthreads.sysprop" value="perClass"/> |
| |
| <property name="changes.target.dir" location="${dest}/docs/changes"/> |
| <property name="license.dir" location="${common-solr.dir}/licenses"/> |
| |
| <property name="solr.tgz.unpack.dir" location="${common-solr.dir}/build/solr.tgz.unpacked"/> |
| <property name="dist.jar.dir.prefix" value="${solr.tgz.unpack.dir}/solr"/> |
| <property name="dist.jar.dir.suffix" value="dist"/> |
| |
| <import file="${common-solr.dir}/../lucene/module-build.xml"/> |
| |
| <property name="solr.tgz.file" location="${common-solr.dir}/package/solr-${version}.tgz"/> |
| <available file="${solr.tgz.file}" property="solr.tgz.exists"/> |
| <available type="dir" file="${solr.tgz.unpack.dir}" property="solr.tgz.unpack.dir.exists"/> |
| <target name="-ensure-solr-tgz-exists" unless="solr.tgz.exists"> |
| <ant dir="${common-solr.dir}" target="create-package" inheritall="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| <target name="-unpack-solr-tgz" unless="${solr.tgz.unpack.dir.exists}"> |
| <antcall target="-ensure-solr-tgz-exists"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </antcall> |
| <mkdir dir="${solr.tgz.unpack.dir}"/> |
| <untar compression="gzip" src="${solr.tgz.file}" dest="${solr.tgz.unpack.dir}"> |
| <patternset refid="patternset.lucene.solr.jars"/> |
| </untar> |
| </target> |
| |
| <!-- backwards compatibility with existing targets/tasks; TODO: remove this! --> |
| <property name="fullnamever" value="${final.name}"/> |
| |
| <path id="additional.dependencies"> |
| <fileset dir="${common-solr.dir}/core/lib" excludes="${common.classpath.excludes}"/> |
| <fileset dir="${common-solr.dir}/solrj/lib" excludes="${common.classpath.excludes}"/> |
| <fileset dir="${common-solr.dir}/server/lib" excludes="${common.classpath.excludes}"/> |
| <fileset dir="${common-solr.dir}/example/example-DIH/solr/db/lib" excludes="${common.classpath.excludes}"/> |
| <fileset dir="lib" excludes="${common.classpath.excludes}" erroronmissingdir="false"/> |
| </path> |
| |
| <path id="solr.lucene.libs"> |
| <!-- List of jars that will be used as the foundation for both |
| the base classpath, as well as copied into the lucene-libs dir |
| in the release. |
| --> |
| <!-- NOTE: lucene-core is explicitly not included because of the |
| base.classpath (compilation & tests are done directly against |
| the class files w/o needing to build the jar) |
| --> |
| <pathelement location="${analyzers-common.jar}"/> |
| <pathelement location="${analyzers-kuromoji.jar}"/> |
| <pathelement location="${analyzers-nori.jar}"/> |
| <pathelement location="${analyzers-phonetic.jar}"/> |
| <pathelement location="${codecs.jar}"/> |
| <pathelement location="${backward-codecs.jar}"/> |
| <pathelement location="${highlighter.jar}"/> |
| <pathelement location="${memory.jar}"/> |
| <pathelement location="${misc.jar}"/> |
| <pathelement location="${spatial-extras.jar}"/> |
| <pathelement location="${spatial3d.jar}"/> |
| <pathelement location="${expressions.jar}"/> |
| <pathelement location="${suggest.jar}"/> |
| <pathelement location="${grouping.jar}"/> |
| <pathelement location="${queries.jar}"/> |
| <pathelement location="${queryparser.jar}"/> |
| <pathelement location="${join.jar}"/> |
| <pathelement location="${sandbox.jar}"/> |
| <pathelement location="${classification.jar}"/> |
| </path> |
| |
| <path id="solr.base.classpath"> |
| <pathelement location="${common-solr.dir}/build/solr-solrj/classes/java"/> |
| <pathelement location="${common-solr.dir}/build/solr-core/classes/java"/> |
| <path refid="solr.lucene.libs" /> |
| <path refid="additional.dependencies"/> |
| <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"/> |
| <fileset dir="${common-solr.dir}/test-framework/lib"> |
| <include name="*.jar"/> |
| <exclude name="junit-*.jar" /> |
| <exclude name="randomizedtesting-runner-*.jar" /> |
| <exclude name="ant*.jar" /> |
| </fileset> |
| <pathelement path="src/test-files"/> |
| <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}/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> |
| |
| <!-- |
| We don't want to run HDFS tests on Windows by default, because they require Cygwin. |
| Cygwin users can explicitly set -Dtests.disableHdfs=false to enable Hdfs related testing. |
| --> |
| <condition property="tests.disableHdfs" value="true"> |
| <os family="windows"/> |
| </condition> |
| |
| <target name="validate" depends="compile-tools"> |
| </target> |
| |
| <target name="init-dist" depends="resolve-groovy"> |
| <mkdir dir="${build.dir}"/> |
| <mkdir dir="${package.dir}"/> |
| <mkdir dir="${dist}"/> |
| <mkdir dir="${maven.dist.dir}"/> |
| </target> |
| |
| <target name="prep-lucene-jars" |
| depends="resolve-groovy, |
| jar-lucene-core, jar-backward-codecs, jar-analyzers-phonetic, jar-analyzers-kuromoji, jar-analyzers-nori, jar-codecs,jar-expressions, jar-suggest, jar-highlighter, jar-memory, |
| jar-misc, jar-spatial-extras, jar-spatial3d, jar-grouping, jar-queries, jar-queryparser, jar-join, jar-sandbox, jar-classification"> |
| <property name="solr.deps.compiled" value="true"/> |
| </target> |
| |
| <target name="lucene-jars-to-solr" |
| depends="-lucene-jars-to-solr-not-for-package,-lucene-jars-to-solr-package"/> |
| |
| <target name="-lucene-jars-to-solr-not-for-package" unless="called.from.create-package"> |
| <sequential> |
| <antcall target="prep-lucene-jars" inheritall="true"/> |
| <property name="solr.deps.compiled" value="true"/> |
| <copy todir="${lucene-libs}" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <path refid="solr.lucene.libs" /> |
| <!-- NOTE: lucene-core is not already included in "solr.lucene.libs" because of its use in classpaths. --> |
| <fileset file="${lucene-core.jar}" /> |
| </copy> |
| </sequential> |
| </target> |
| |
| <target name="-lucene-jars-to-solr-package" if="called.from.create-package"> |
| <sequential> |
| <antcall target="-unpack-lucene-tgz" inheritall="true"/> |
| <pathconvert property="relative.solr.lucene.libs" pathsep=","> |
| <path refid="solr.lucene.libs"/> |
| <fileset file="${lucene-core.jar}"/> |
| <globmapper from="${common.build.dir}/*" to="*" handledirsep="true"/> |
| </pathconvert> |
| <mkdir dir="${lucene-libs}"/> |
| <copy todir="${lucene-libs}" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <fileset dir="${lucene.tgz.unpack.dir}/lucene-${version}" includes="${relative.solr.lucene.libs}"/> |
| </copy> |
| </sequential> |
| </target> |
| |
| <!-- Shared core/solrj/test-framework/contrib targets --> |
| |
| <macrodef name="solr-jarify" description="Builds a Solr JAR file"> |
| <attribute name="basedir" default="${build.dir}/classes/java"/> |
| <attribute name="destfile" default="${build.dir}/${final.name}.jar"/> |
| <attribute name="title" default="Apache Solr Search Server: ${ant.project.name}"/> |
| <attribute name="excludes" default="**/pom.xml,**/*.iml"/> |
| <attribute name="metainf.source.dir" default="${common-solr.dir}"/> |
| <attribute name="implementation.title" default="org.apache.solr"/> |
| <attribute name="manifest.file" default="${manifest.file}"/> |
| <element name="solr-jarify-filesets" optional="true"/> |
| <element name="solr-jarify-additional-manifest-attributes" optional="true"/> |
| <sequential> |
| <jarify basedir="@{basedir}" destfile="@{destfile}" |
| title="@{title}" excludes="@{excludes}" |
| metainf.source.dir="@{metainf.source.dir}" |
| implementation.title="@{implementation.title}" |
| manifest.file="@{manifest.file}"> |
| <filesets> |
| <solr-jarify-filesets /> |
| </filesets> |
| <jarify-additional-manifest-attributes> |
| <solr-jarify-additional-manifest-attributes /> |
| </jarify-additional-manifest-attributes> |
| </jarify> |
| </sequential> |
| </macrodef> |
| |
| <target name="jar-core" depends="compile-core"> |
| <solr-jarify/> |
| </target> |
| |
| <target name="compile-core" depends="prep-lucene-jars,resolve-example,resolve-server,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> |
| |
| <property name="lucenedocs" location="${common.dir}/build/docs"/> |
| |
| <!-- dependency to ensure all lucene javadocs are present --> |
| <target name="lucene-javadocs" depends="javadocs-lucene-core,javadocs-analyzers-common,javadocs-analyzers-icu,javadocs-analyzers-kuromoji,javadocs-analyzers-nori,javadocs-analyzers-phonetic,javadocs-analyzers-smartcn,javadocs-analyzers-morfologik,javadocs-analyzers-stempel,javadocs-backward-codecs,javadocs-codecs,javadocs-expressions,javadocs-suggest,javadocs-grouping,javadocs-queries,javadocs-queryparser,javadocs-highlighter,javadocs-memory,javadocs-misc,javadocs-spatial-extras,javadocs-join,javadocs-test-framework"/> |
| |
| <!-- create javadocs for the current module --> |
| <target name="javadocs" depends="compile-core,define-lucene-javadoc-url,lucene-javadocs,javadocs-solr-core,check-javadocs-uptodate" unless="javadocs-uptodate-${name}"> |
| <sequential> |
| <mkdir dir="${javadoc.dir}/${name}"/> |
| <solr-invoke-javadoc> |
| <solrsources> |
| <packageset dir="${src.dir}"/> |
| </solrsources> |
| <links> |
| <link href="../solr-solrj"/> |
| <link href="../solr-core"/> |
| </links> |
| </solr-invoke-javadoc> |
| <solr-jarify basedir="${javadoc.dir}/${name}" destfile="${build.dir}/${final.name}-javadoc.jar"/> |
| </sequential> |
| </target> |
| |
| <target name="check-solr-core-javadocs-uptodate" unless="solr-core-javadocs.uptodate"> |
| <uptodate property="solr-core-javadocs.uptodate" targetfile="${build.dir}/solr-core/solr-core-${version}-javadoc.jar"> |
| <srcfiles dir="${common-solr.dir}/core/src/java" includes="**/*.java"/> |
| </uptodate> |
| </target> |
| |
| <target name="check-solrj-javadocs-uptodate" unless="solrj-javadocs.uptodate"> |
| <uptodate property="solrj-javadocs.uptodate" targetfile="${build.dir}/solr-solrj/solr-solrj-${version}-javadoc.jar"> |
| <srcfiles dir="${common-solr.dir}/solrj/src/java" includes="**/*.java"/> |
| </uptodate> |
| </target> |
| |
| <target name="javadocs-solr-core" depends="check-solr-core-javadocs-uptodate" unless="solr-core-javadocs.uptodate"> |
| <ant dir="${common-solr.dir}/core" target="javadocs" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solr-core-javadocs.uptodate" value="true"/> |
| </target> |
| |
| <target name="javadocs-solrj" depends="check-solrj-javadocs-uptodate" unless="solrj-javadocs.uptodate"> |
| <ant dir="${common-solr.dir}/solrj" target="javadocs" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="solrj-javadocs.uptodate" value="true"/> |
| </target> |
| |
| <!-- macro to create solr javadocs with links to lucene. make sure calling task depends on lucene-javadocs --> |
| <macrodef name="solr-invoke-javadoc"> |
| <element name="solrsources" optional="yes"/> |
| <element name="links" optional="yes"/> |
| <attribute name="destdir" default="${javadoc.dir}/${name}"/> |
| <attribute name="title" default="${Name} ${version} ${name} API"/> |
| <attribute name="overview" default="${src.dir}/overview.html"/> |
| <sequential> |
| <mkdir dir="@{destdir}"/> |
| <invoke-javadoc destdir="@{destdir}" title="@{title}" overview="@{overview}"> |
| <sources> |
| <solrsources/> |
| <link offline="true" href="${lucene.javadoc.url}core" packagelistloc="${lucenedocs}/core"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-common" packagelistloc="${lucenedocs}/analyzers-common"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-icu" packagelistloc="${lucenedocs}/analyzers-icu"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-kuromoji" packagelistloc="${lucenedocs}/analyzers-kuromoji"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-nori" packagelistloc="${lucenedocs}/analyzers-nori"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-morfologik" packagelistloc="${lucenedocs}/analyzers-morfologik"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-phonetic" packagelistloc="${lucenedocs}/analyzers-phonetic"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-smartcn" packagelistloc="${lucenedocs}/analyzers-smartcn"/> |
| <link offline="true" href="${lucene.javadoc.url}analyzers-stempel" packagelistloc="${lucenedocs}/analyzers-stempel"/> |
| <link offline="true" href="${lucene.javadoc.url}backward-codecs" packagelistloc="${lucenedocs}/backward-codecs"/> |
| <link offline="true" href="${lucene.javadoc.url}codecs" packagelistloc="${lucenedocs}/codecs"/> |
| <link offline="true" href="${lucene.javadoc.url}expressions" packagelistloc="${lucenedocs}/expressions"/> |
| <link offline="true" href="${lucene.javadoc.url}suggest" packagelistloc="${lucenedocs}/suggest"/> |
| <link offline="true" href="${lucene.javadoc.url}grouping" packagelistloc="${lucenedocs}/grouping"/> |
| <link offline="true" href="${lucene.javadoc.url}join" packagelistloc="${lucenedocs}/join"/> |
| <link offline="true" href="${lucene.javadoc.url}queries" packagelistloc="${lucenedocs}/queries"/> |
| <link offline="true" href="${lucene.javadoc.url}queryparser" packagelistloc="${lucenedocs}/queryparser"/> |
| <link offline="true" href="${lucene.javadoc.url}highlighter" packagelistloc="${lucenedocs}/highlighter"/> |
| <link offline="true" href="${lucene.javadoc.url}memory" packagelistloc="${lucenedocs}/memory"/> |
| <link offline="true" href="${lucene.javadoc.url}misc" packagelistloc="${lucenedocs}/misc"/> |
| <link offline="true" href="${lucene.javadoc.url}classification" packagelistloc="${lucenedocs}/classification"/> |
| <link offline="true" href="${lucene.javadoc.url}spatial-extras" packagelistloc="${lucenedocs}/spatial-extras"/> |
| <links/> |
| <link href=""/> |
| </sources> |
| </invoke-javadoc> |
| </sequential> |
| </macrodef> |
| |
| <target name="define-lucene-javadoc-url" depends="resolve-groovy" unless="lucene.javadoc.url"> |
| <property name="useLocalJavadocUrl" value=""/> |
| <groovy><![CDATA[ |
| String url, version = properties['version']; |
| String useLocalJavadocUrl = properties['useLocalJavadocUrl']; |
| if (version != properties['version.base'] || Boolean.parseBoolean(useLocalJavadocUrl)) { |
| url = new File(properties['common.dir'], 'build' + File.separator + 'docs').toURI().toASCIIString(); |
| if (!(url =~ /\/$/)) url += '/'; |
| } else { |
| version = version.replace('.', '_'); |
| url = 'https://lucene.apache.org/core/' + version + '/'; |
| } |
| task.log('Using the following URL to refer to Lucene Javadocs: ' + url); |
| properties['lucene.javadoc.url'] = url; |
| ]]></groovy> |
| </target> |
| |
| <target name="define-solr-javadoc-url" depends="resolve-groovy" unless="solr.javadoc.url"> |
| <groovy><![CDATA[ |
| String url, version = properties['version']; |
| if (version != properties['version.base']) { |
| url = ''; |
| task.log('Disabled Solr Javadocs online URL for packaging (custom build / SNAPSHOT version).'); |
| } else { |
| version = version.replace('.', '_'); |
| url = 'https://lucene.apache.org/solr/' + version + '/'; |
| task.log('Using the following URL to refer to Solr Javadocs: ' + url); |
| } |
| properties['solr.javadoc.url'] = url; |
| ]]></groovy> |
| </target> |
| |
| <target name="jar-src"> |
| <sequential> |
| <mkdir dir="${build.dir}"/> |
| <solr-jarify basedir="${src.dir}" destfile="${build.dir}/${final.name}-src.jar"> |
| <solr-jarify-filesets> |
| <fileset dir="${resources.dir}" erroronmissingdir="no"/> |
| </solr-jarify-filesets> |
| </solr-jarify> |
| </sequential> |
| </target> |
| |
| <target name="-validate-maven-dependencies" depends="-validate-maven-dependencies.init"> |
| <m2-validate-dependencies pom.xml="${maven.pom.xml}" licenseDirectory="${license.dir}"> |
| <additional-filters> |
| <replaceregex pattern="jetty([^/]+)$" replace="jetty" flags="gi" /> |
| <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" /> |
| <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" /> |
| </additional-filters> |
| <excludes> |
| <rsel:or> |
| <rsel:name name="**/lucene-*-${maven.version.glob}.jar" handledirsep="true"/> |
| <rsel:name name="**/solr-*-${maven.version.glob}.jar" handledirsep="true"/> |
| <!-- TODO: figure out what is going on here with servlet-apis --> |
| <rsel:name name="**/*servlet*.jar" handledirsep="true"/> |
| </rsel:or> |
| </excludes> |
| </m2-validate-dependencies> |
| </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> |
| <target name="jar-solrj" description="Jar Solr-J"> |
| <ant dir="${common-solr.dir}/solrj" target="jar-core" 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> |
| |
| <target name="jar-solr-test-framework" depends="compile-solr-test-framework"> |
| <ant dir="${common-solr.dir}/test-framework" target="jar-core" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <!-- resolve dependencies in the example (relied upon by compile/tests) --> |
| <target name="resolve-example" unless="example.libs.uptodate"> |
| <ant dir="${common-solr.dir}/example/example-DIH" target="resolve" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="example.libs.uptodate" value="true"/> |
| </target> |
| |
| <!-- resolve dependencies in the server directory (relied upon by compile/tests) --> |
| <target name="resolve-server" unless="server.libs.uptodate"> |
| <ant dir="${common-solr.dir}/server" target="resolve" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| <property name="server.libs.uptodate" value="true"/> |
| </target> |
| |
| <macrodef name="contrib-crawl"> |
| <attribute name="target" default=""/> |
| <attribute name="failonerror" default="true"/> |
| <sequential> |
| <subant target="@{target}" failonerror="@{failonerror}" inheritall="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| <fileset dir="." includes="contrib/*/build.xml"/> |
| </subant> |
| </sequential> |
| </macrodef> |
| |
| <target name="-compile-test-lucene-analysis"> |
| <ant dir="${common.dir}/analysis" target="compile-test" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <target name="-compile-test-lucene-queryparser"> |
| <ant dir="${common.dir}/queryparser" target="compile-test" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <target name="-compile-test-lucene-backward-codecs"> |
| <ant dir="${common.dir}/backward-codecs" target="compile-test" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <!-- Solr contrib targets --> |
| <target name="-compile-analysis-extras"> |
| <ant dir="${common-solr.dir}/contrib/analysis-extras" target="compile" inheritAll="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <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="javadocs-contrib" description="Compile contrib modules"> |
| <contrib-crawl target="javadocs"/> |
| </target> |
| |
| <target name="jar-contrib" description="Jar contrib modules"> |
| <contrib-crawl target="jar-core"/> |
| </target> |
| |
| <target name="contribs-add-to-webapp"> |
| <mkdir dir="${dest}/web"/> |
| <delete dir="${dest}/web" includes="**/*" failonerror="false"/> |
| <contrib-crawl target="add-to-webapp"/> |
| </target> |
| |
| <!-- Forbidden API Task, customizations for Solr --> |
| <target name="-check-forbidden-all" depends="-init-forbidden-apis,compile-core,compile-test"> |
| <property prefix="ivyversions" file="${common.dir}/ivy-versions.properties"/><!-- for commons-io version --> |
| <forbidden-apis suppressAnnotation="**.SuppressForbidden" classpathref="forbidden-apis.allclasses.classpath" targetVersion="${javac.release}"> |
| <signatures> |
| <bundled name="jdk-unsafe"/> |
| <bundled name="jdk-deprecated"/> |
| <bundled name="jdk-non-portable"/> |
| <bundled name="jdk-reflection"/> |
| <bundled name="commons-io-unsafe-${ivyversions./commons-io/commons-io}"/> |
| <fileset dir="${common.dir}/tools/forbiddenApis"> |
| <include name="base.txt" /> |
| <include name="servlet-api.txt" /> |
| <include name="solr.txt" /> |
| </fileset> |
| </signatures> |
| <fileset dir="${build.dir}/classes/java" excludes="${forbidden-base-excludes}"/> |
| <fileset dir="${build.dir}/classes/test" excludes="${forbidden-tests-excludes}" erroronmissingdir="false"/> |
| </forbidden-apis> |
| </target> |
| |
| |
| <!-- hack for now to disable *all* Solr tests on Jenkins when "tests.disable-solr" property is set --> |
| <target name="test" unless="tests.disable-solr"> |
| <antcall target="common.test" inheritrefs="true" inheritall="true"/> |
| </target> |
| </project> |