| <!-- |
| 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" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> |
| <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"/> |
| |
| <!-- change this together with the default and test's solrconfig.xml after starting a new development branch: --> |
| <property name="tests.luceneMatchVersion" value="4.0"/> |
| |
| <!-- Initialize property values: allow easy customization via build.properties --> |
| <property file="build.properties" /> |
| |
| <property name="Name" value="Solr" /> |
| |
| <property name="name" value="${ant.project.name}"/> |
| |
| <property name="dev-tools.dir" value="${solr-path}/../dev-tools"/> |
| <property name="prettify.dir" value="${solr-path}/../lucene/src/tools/prettify"/> |
| <property name="package.dir" location="package"/> |
| |
| <tstamp> |
| <format property="year" pattern="yyyy"/> |
| <format property="DSTAMP" pattern="yyyy-MM-dd"/> |
| <format property="TSTAMP" pattern="HH:mm:ss"/> |
| <!-- datetime format that is safe to treat as part of a dotted version --> |
| <format property="dateversion" pattern="yyyy.MM.dd.HH.mm.ss" /> |
| </tstamp> |
| |
| <property name="junit.details" value="1"/> |
| |
| <!-- default arguments to pass to jvm executing tests --> |
| <property name="args" value="" /> |
| |
| <!-- TODO: measure toning this down by default to 1 --> |
| <property name="tests.threadspercpu" value="2"/> |
| <condition property="tests.sequential"> |
| <or> |
| <isset property="testcase"/> |
| <equals arg1="${tests.threadspercpu}" arg2="0"/> |
| </or> |
| </condition> |
| |
| <property name="tests.multiplier" value="1" /> |
| <property name="tests.codecprovider" value="random" /> |
| <property name="tests.codec" value="randomPerField" /> |
| <property name="tests.locale" value="random" /> |
| <property name="tests.timezone" value="random" /> |
| <property name="tests.iter" value="1" /> |
| <property name="tests.seed" value="random" /> |
| <property name="tests.nightly" value="false" /> |
| <property name="tests.verbose" value="false" /> |
| <property name="tests.directory" value="random" /> |
| |
| <condition property="dir.prop" value="-Dsolr.directoryFactory=solr.StandardDirectoryFactory"> |
| <isset property="use.fsdir"/> |
| </condition> |
| |
| <!-- Example directory --> |
| <property name="example" value="${common-solr.dir}/example" /> |
| <!-- |
| we attempt to exec svnversion to get details build information |
| for jar manifests. this property can be set at runtime to an |
| explicit path as needed, or ant will just try to find it in the |
| default PATH. (this is useful for Hudson) |
| --> |
| <property name="svnversion.exe" value="svnversion" /> |
| <property name="svn.exe" value="svn" /> |
| |
| <!-- Java Version we are compatible with --> |
| <property name="java.compat.version" value="1.6" /> |
| |
| <!-- clover wants to run with -lib, otherwise we prefer a repeatable |
| classpath --> |
| <property name="javac.includeAntRuntime" value="${run.clover}"/> |
| |
| <!-- Solr Implementation Version --> |
| <!-- |
| This can be any string value that does not include spaces |
| This will be used when creating build artifact file names. |
| |
| By default, this should be set to "X.Y.N-SNAPSHOT" where X.Y.N is |
| "1 greater" then the last version released (on this branch). |
| --> |
| <property name="version" value="4.0-SNAPSHOT" /> |
| |
| <!-- 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="specversion" value="4.0.0.${dateversion}" /> |
| |
| |
| <!-- Type of checksum to compute for distribution files --> |
| <property name="checksum.algorithm" value="md5" /> |
| |
| <property name="fullname" value="apache-${ant.project.name}"/> |
| <property name="fullnamever" value="apache-${ant.project.name}-${version}"/> |
| |
| <!-- Destination for compiled classes and binaries --> |
| <property name="dest" value="build" /> |
| |
| <!-- Destination for Lucene jars --> |
| <property name="lucene-libs" location="lucene-libs" /> |
| |
| <!-- Javadoc properties --> |
| <property name="javadoc.years" value="2006 - ${year}" /> |
| <property name="javadoc.access" value="protected"/> |
| <property name="javadoc.link.java" |
| value="http://java.sun.com/javase/6/docs/api/"/> |
| <property name="javadoc.link.junit" |
| value="http://junit.sourceforge.net/javadoc/"/> |
| <property name="javadoc.link.lucene" |
| value="https://hudson.apache.org/hudson/job/Lucene-trunk/javadoc/all/"/> |
| <property name="javadoc.packages" value="org.apache.solr.*"/> |
| <property name="build.docs" value="${dest}/docs"/> |
| <property name="build.javadoc" value="${common-solr.dir}/${build.docs}/api"/> |
| <property name="build.javadoc.solrj" value="${build.docs}/api-solrj"/> |
| |
| <!-- JUnit properties --> |
| <property name="testmethod" value=""/> |
| <property name="junit.includes" value="**/Test*.java,**/*Test.java"/> |
| <property name="junit.output.dir" location="${common-solr.dir}/${dest}/test-results"/> |
| <property name="junit.reports" location="${common-solr.dir}/${dest}/test-results/reports"/> |
| <property name="junit.formatter" value="plain"/> |
| <condition property="junit.details.formatter" |
| value="org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter" |
| else="org.apache.lucene.util.LuceneJUnitResultFormatter"> |
| <isset property="tests.sequential"/> |
| </condition> |
| <property name="junit.parallel.selector" value="org.apache.lucene.util.LuceneJUnitDividingSelector"/> |
| |
| <!-- Maven properties --> |
| <property name="maven.build.dir" value="${basedir}/build/maven"/> |
| <property name="maven.dist.dir" value="${package.dir}/maven"/> |
| |
| <property name="maven.dist.prefix" value="${maven.dist.dir}/org/apache/solr"/> |
| |
| <!-- By default, "deploy" to a temporary directory (as well as installing |
| into your local repository). If you wish to deploy to a remote |
| repository, set this property to the URL of that repository. In |
| addition, if the repository requires authentication, you can set |
| properties "m2.repository.username" and "m2.repository.private.key" |
| to define your credentials. |
| --> |
| <property name="m2.repository.url" value="file://${maven.dist.dir}"/> |
| <property name="m2.repository.private.key" value="${user.home}/.ssh/id_dsa"/> |
| |
| <available property="maven.ant.tasks.present" classname="org.apache.maven.artifact.ant.Pom" /> |
| |
| <!-- End Maven Properties --> |
| |
| <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> |
| |
| <!-- Lucene --> |
| |
| <path id="lucene.classpath"> |
| <pathelement location="${common-solr.dir}/../lucene/build/classes/java" /> |
| <pathelement location="${common-solr.dir}/../modules/analysis/build/common/classes/java" /> |
| <pathelement location="${common-solr.dir}/../modules/analysis/build/phonetic/classes/java" /> |
| <pathelement location="${common-solr.dir}/../modules/suggest/build/classes/java" /> |
| <pathelement location="${common-solr.dir}/../lucene/build/contrib/highlighter/classes/java" /> |
| <pathelement location="${common-solr.dir}/../lucene/build/contrib/memory/classes/java" /> |
| <pathelement location="${common-solr.dir}/../lucene/build/contrib/misc/classes/java" /> |
| <pathelement location="${common-solr.dir}/../lucene/build/contrib/queries/classes/java" /> |
| <pathelement location="${common-solr.dir}/../lucene/build/contrib/spatial/classes/java" /> |
| </path> |
| |
| <target name="prep-lucene-jars"> |
| <sequential> |
| <subant target="jar-core" inheritall="false" failonerror="true"> |
| <fileset dir="../lucene/" includes="build.xml" /> |
| </subant> |
| <subant target="jar" inheritall="false" failonerror="true"> |
| <fileset dir="../modules/analysis/common" includes="build.xml" /> |
| <fileset dir="../modules/analysis/phonetic" includes="build.xml" /> |
| <fileset dir="../modules/suggest" includes="build.xml" /> |
| <fileset dir="../lucene/contrib/highlighter" includes="build.xml" /> |
| <fileset dir="../lucene/contrib/memory" includes="build.xml" /> |
| <fileset dir="../lucene/contrib/misc" includes="build.xml" /> |
| <fileset dir="../lucene/contrib/queries" includes="build.xml" /> |
| <fileset dir="../lucene/contrib/spatial" includes="build.xml" /> |
| </subant> |
| </sequential> |
| </target> |
| |
| <target name="lucene-jars-to-solr" depends="prep-lucene-jars"> |
| <mkdir dir="${lucene-libs}"/> |
| <copy todir="${lucene-libs}" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <fileset dir="../lucene/build/"> |
| <include name="lucene-core-${version}.jar" /> |
| </fileset> |
| <fileset dir="../modules/analysis/build/common"> |
| <include name="lucene-analyzers-common-${version}.jar" /> |
| </fileset> |
| <fileset dir="../modules/analysis/build/phonetic"> |
| <include name="lucene-analyzers-phonetic-${version}.jar" /> |
| </fileset> |
| <fileset dir="../modules/suggest/build"> |
| <include name="lucene-suggest-${version}.jar" /> |
| </fileset> |
| <fileset dir="../lucene/build/contrib/highlighter"> |
| <include name="lucene-highlighter-${version}.jar" /> |
| </fileset> |
| <fileset dir="../lucene/build/contrib/memory"> |
| <include name="lucene-memory-${version}.jar" /> |
| </fileset> |
| <fileset dir="../lucene/build/contrib/misc"> |
| <include name="lucene-misc-${version}.jar" /> |
| </fileset> |
| <fileset dir="../lucene/build/contrib/queries"> |
| <include name="lucene-queries-${version}.jar" /> |
| </fileset> |
| <fileset dir="../lucene/build/contrib/spatial"> |
| <include name="lucene-spatial-${version}.jar" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="compile-lucene" unless="lucene-compiled"> |
| <property name="lucene-compiled" value="true"/> |
| <subant target="default"> |
| <fileset dir="../modules/analysis/common" includes="build.xml"/> |
| <fileset dir="../modules/analysis/phonetic" includes="build.xml"/> |
| <fileset dir="../modules/suggest" includes="build.xml"/> |
| <fileset dir="../lucene/contrib/highlighter" includes="build.xml"/> |
| <fileset dir="../lucene/contrib/memory" includes="build.xml"/> |
| <fileset dir="../lucene/contrib/misc" includes="build.xml"/> |
| <fileset dir="../lucene/contrib/queries" includes="build.xml"/> |
| <fileset dir="../lucene/contrib/spatial" includes="build.xml"/> |
| </subant> |
| </target> |
| |
| |
| <!-- Macro for compilation --> |
| <macrodef name="solr-javac"> |
| <attribute name="destdir" /> |
| <attribute name="classpathref" /> |
| <element name="nested" optional="true" implicit="true" /> |
| <sequential> |
| <mkdir dir="@{destdir}" /> |
| <javac destdir="@{destdir}" |
| target="${java.compat.version}" |
| source="${java.compat.version}" |
| debug="on" |
| encoding="utf8" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| sourcepath="" |
| classpathref="@{classpathref}"> |
| <compilerarg line="-Xlint -Xlint:-deprecation -Xlint:-serial"/> |
| <nested /> |
| </javac> |
| </sequential> |
| </macrodef> |
| |
| <!-- Macro for building Jars --> |
| <macrodef name="solr-jar"> |
| <attribute name="destfile" /> |
| <attribute name="basedir" default="." /> |
| <attribute name="includes" default="org/apache/**" /> |
| <attribute name="excludes" default="" /> |
| <attribute name="manifest" default="${common-solr.dir}/${dest}/META-INF/MANIFEST.MF" /> |
| <element name="nested" optional="true" implicit="true" /> |
| <sequential> |
| <jar destfile="@{destfile}" |
| basedir="@{basedir}" |
| includes="@{includes}" |
| excludes="@{excludes}" |
| filesetmanifest="skip" |
| manifest="@{manifest}"> |
| <metainf dir="${common-solr.dir}" includes="LICENSE.txt,NOTICE.txt"/> |
| <nested /> |
| </jar> |
| </sequential> |
| </macrodef> |
| |
| <!-- Macro for building checksum files |
| This is only needed until the "format" option is supported |
| by ant's built in checksum task |
| --> |
| <macrodef name="solr-checksum"> |
| <attribute name="file"/> |
| <sequential> |
| <echo>Building checksums for '@{file}'</echo> |
| <checksum file="@{file}" algorithm="md5" format="MD5SUM" forceoverwrite="yes" readbuffersize="65536"/> |
| <checksum file="@{file}" algorithm="sha1" format="MD5SUM" forceoverwrite="yes" readbuffersize="65536"/> |
| </sequential> |
| </macrodef> |
| |
| |
| <macrodef name="contrib-crawl"> |
| <attribute name="target" default=""/> |
| <attribute name="failonerror" default="true"/> |
| <sequential> |
| <subant target="@{target}" failonerror="@{failonerror}"> |
| <property name="lucene-compiled" value="${lucene-compiled}"/> |
| <fileset dir="." |
| includes="contrib/*/build.xml" |
| /> |
| </subant> |
| </sequential> |
| </macrodef> |
| |
| <property name="failonjavadocwarning" value="true"/> |
| <macrodef name="invoke-javadoc"> |
| <element name="sources" optional="yes"/> |
| <attribute name="destdir"/> |
| <attribute name="title" default="${Name} ${version} API (${specversion})"/> |
| <sequential> |
| <mkdir dir="@{destdir}"/> |
| <copy todir="@{destdir}/prettify" overwrite="false"> |
| <fileset dir="${prettify.dir}"/> |
| </copy> |
| <record name="@{destdir}/log_javadoc.txt" action="start" append="no"/> |
| <javadoc |
| packagenames="org.apache.solr.*" |
| failonerror="true" |
| destdir="@{destdir}" |
| access="${javadoc.access}" |
| encoding="utf-8" |
| author="true" |
| version="true" |
| use="true" |
| source="${ant.java.version}" |
| link="${javadoc.link.java}" |
| windowtitle="${Name} ${version} API" |
| doctitle="@{title}" |
| stylesheetfile="@{destdir}/prettify/stylesheet+prettify.css" |
| bottom="Copyright &copy; ${year} Apache Software Foundation. All Rights Reserved."> |
| <tag name="todo" description="To Do:"/> |
| <tag name="uml.property" description="UML Property:"/> |
| <tag name="lucene.experimental" |
| description="WARNING: This API is experimental and might change in incompatible ways in the next release."/> |
| <tag name="lucene.internal" |
| description="NOTE: This API is for Lucene internal purposes only and might change in incompatible ways in the next release."/> |
| <link offline="true" packagelistLoc="${build.javadoc}"/> |
| <link href="${javadoc.link.java}"/> |
| <link href="${javadoc.link.junit}"/> |
| <link href="${javadoc.link.lucene}"/> |
| <header><![CDATA[ |
| <script src="{@docRoot}/prettify/prettify.js" type="text/javascript"></script> |
| <script language="JavaScript">window.onload=function(){windowTitle();prettyPrint();}</script> |
| ]]></header> |
| |
| <sources /> |
| |
| <classpath refid="javadoc.classpath"/> |
| </javadoc> |
| <record name="@{destdir}/log_javadoc.txt" action="stop"/> |
| |
| <delete> |
| <fileset file="@{destdir}/log_javadoc.txt"> |
| <not> |
| <containsregexp expression="\[javadoc\]\s*[1-9][0-9]*[\s]*warning"/> |
| </not> |
| </fileset> |
| </delete> |
| |
| <fail message="Javadocs warnings were found!" > |
| <condition> |
| <and> |
| <available file="@{destdir}/log_javadoc.txt"/> |
| <istrue value="${failonjavadocwarning}"/> |
| </and> |
| </condition> |
| </fail> |
| </sequential> |
| </macrodef> |
| |
| <!-- NOTE, the pom.xml MUST be a relative path. An absolute path may break the build on windows --> |
| <macrodef name="m2-deploy" description="Builds a Maven artifact"> |
| <element name="artifact-attachments" optional="yes"/> |
| <attribute name="pom.xml" default="pom.xml"/> |
| <attribute name="jar.file" default="${jar.file}"/> |
| <sequential> |
| <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-7"/> |
| <artifact:pom id="maven.project" file="@{pom.xml}"/> |
| <artifact:deploy file="@{jar.file}"> |
| <artifact-attachments/> |
| <remoteRepository url="${m2.repository.url}"> |
| <authentication username="${m2.repository.username}" privateKey="${m2.repository.private.key}"/> |
| </remoteRepository> |
| <pom refid="maven.project"/> |
| </artifact:deploy> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="m2-deploy-with-pom-template" description="Builds a Maven artifact given a POM template"> |
| <attribute name="pom.xml"/> |
| <attribute name="jar.file"/> |
| <sequential> |
| <copy file="@{pom.xml}" tofile="${maven.build.dir}/@{pom.xml}"> |
| <filterset begintoken="@" endtoken="@"> |
| <filter token="version" value="${version}"/> |
| </filterset> |
| </copy> |
| <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-7"/> |
| <artifact:pom id="maven.project" file="${maven.build.dir}/@{pom.xml}" /> |
| <artifact:deploy file="@{jar.file}"> |
| <remoteRepository url="${m2.repository.url}"> |
| <authentication username="${m2.repository.username}" privateKey="${m2.repository.private.key}"/> |
| </remoteRepository> |
| <pom refid="maven.project"/> |
| </artifact:deploy> |
| </sequential> |
| </macrodef> |
| |
| <property name="gpg.exe" value="gpg" /> |
| <property name="gpg.key" value="CODE SIGNING KEY" /> |
| <macrodef name="sign-artifact" description="Signs the artifact"> |
| <attribute name="input.file"/> |
| <attribute name="output.file" default="@{input.file}.asc"/> |
| <attribute name="gpg.passphrase"/> |
| <sequential> |
| <echo >Signing @{input.file} Sig File: @{output.file}</echo> |
| |
| <exec executable="${gpg.exe}" > |
| <arg value="--batch"/> |
| <arg value="--armor"/> |
| <arg value="--output"/> |
| <arg value="@{output.file}"/> |
| <arg value="--default-key"/> |
| <arg value="${gpg.key}"/> |
| <arg value="--passphrase"/> |
| <arg value="@{gpg.passphrase}"/> |
| <arg value="--detach-sig"/> |
| <arg value="@{input.file}"/> |
| </exec> |
| </sequential> |
| </macrodef> |
| |
| <!-- |
| We need to sign: |
| The POM |
| The library jar |
| The sources jar |
| the javadoc jar |
| --> |
| <macrodef name="sign-maven-artifacts" description="Signs maven artifacts"> |
| <attribute name="artifact.id"/> |
| <attribute name="prefix.dir" default="${maven.dist.prefix}"/> |
| <attribute name="gpg.passphrase"/> |
| <sequential> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.jar" gpg.passphrase="@{gpg.passphrase}"/> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}-javadoc.jar" gpg.passphrase="@{gpg.passphrase}"/> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}-sources.jar" gpg.passphrase="@{gpg.passphrase}"/> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.pom" gpg.passphrase="@{gpg.passphrase}"/> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="sign-maven-war-artifacts" description="Signs maven artifacts"> |
| <attribute name="artifact.id"/> |
| <attribute name="prefix.dir" default="${maven.dist.prefix}"/> |
| <attribute name="gpg.passphrase"/> |
| <sequential> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.war" gpg.passphrase="@{gpg.passphrase}"/> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.pom" gpg.passphrase="@{gpg.passphrase}"/> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="sign-maven-dependency-artifacts" description="Signs a maven artifact and its POM"> |
| <attribute name="artifact.id"/> |
| <attribute name="prefix.dir" default="${maven.dist.prefix}"/> |
| <attribute name="gpg.passphrase"/> |
| <sequential> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.jar" gpg.passphrase="@{gpg.passphrase}"/> |
| <sign-artifact input.file="@{prefix.dir}/@{artifact.id}/${version}/@{artifact.id}-${version}.pom" gpg.passphrase="@{gpg.passphrase}"/> |
| </sequential> |
| </macrodef> |
| |
| <!-- setup proxy for download tasks --> |
| <condition property="proxy.specified"> |
| <or> |
| <isset property="proxy.host"/> |
| <isset property="proxy.port"/> |
| <isset property="proxy.user"/> |
| </or> |
| </condition> |
| |
| <target name="proxy.setup" if="proxy.specified"> |
| <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" proxyuser="${proxy.user}" proxypassword="${proxy.password}"/> |
| </target> |
| |
| |
| <target name="clean-contrib" |
| description="Cleans all contrib modules and their tests"> |
| <contrib-crawl target="clean"/> |
| </target> |
| |
| <target name="build-contrib" |
| description="Builds all contrib modules and their tests"> |
| <contrib-crawl target="build"/> |
| </target> |
| |
| <target name="test-contrib" depends="build-contrib"> |
| <contrib-crawl target="test" failonerror="true"/> |
| </target> |
| |
| <target name="dist-contrib" description="Make the contribs ready for distribution"> |
| <contrib-crawl target="dist" failonerror="true" /> |
| </target> |
| |
| <target name="example-contrib" description="Tell the contrib to add their stuff to examples"> |
| <contrib-crawl target="example" failonerror="true" /> |
| </target> |
| |
| <!-- Creates a Manifest file for Jars and WARs --> |
| <target name="make-manifest"> |
| <!-- If possible, include the svnversion --> |
| <exec dir="." executable="${svnversion.exe}" outputproperty="svnversion" failifexecutionfails="false"> |
| <arg line="."/> |
| </exec> |
| |
| <!-- no description, don't advertise --> |
| <mkdir dir="${dest}/META-INF/" /> |
| <manifest mode="replace" file="${dest}/META-INF/MANIFEST.MF"> |
| <!-- |
| http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest |
| http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html |
| http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html |
| http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html |
| http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html |
| --> |
| <!-- Don't set 'Manifest-Version' it identifies the version of the |
| manifest file format, and should always be 1.0 (the default) |
| |
| Don't set 'Created-by' attribute, its purpose is |
| to identify the version of java used to build the jar, |
| which ant will do by default. |
| |
| Ant will happily override these with bogus strings if you |
| tell it to, so don't. |
| |
| NOTE: we don't use section info because all of our manifest data |
| applies to the entire jar/war ... no package specific info. |
| --> |
| <attribute name="Extension-Name" |
| value="org.apache.solr"/> |
| <attribute name="Specification-Title" |
| value="Apache Solr Search Server"/> |
| <!-- spec version must match "digit+{.digit+}*" --> |
| <attribute name="Specification-Version" |
| value="${specversion}"/> |
| <attribute name="Specification-Vendor" |
| value="The Apache Software Foundation"/> |
| <attribute name="Implementation-Title" |
| value="org.apache.solr"/> |
| <!-- impl version can be any string --> |
| <attribute name="Implementation-Version" |
| value="${version} ${svnversion} - ${user.name} - ${DSTAMP} ${TSTAMP}"/> |
| <attribute name="Implementation-Vendor" |
| value="The Apache Software Foundation"/> |
| <attribute name="X-Compile-Source-JDK" |
| value="${java.compat.version}"/> |
| <attribute name="X-Compile-Target-JDK" |
| value="${java.compat.version}"/> |
| </manifest> |
| </target> |
| |
| <target name="maven.ant.tasks-check"> |
| <fail unless="maven.ant.tasks.present"># |
| ########################################################################## |
| Maven ant tasks not found. |
| |
| Please download the Maven ant tasks JAR (maven-ant-tasks-2.1.1.jar) |
| from http://maven.apache.org/ant-tasks/download.html and add it to your |
| $$HOME/.ant/lib/ directory, or to your $$ANT_HOME/lib/ directory, or |
| to your $$CLASSPATH, or add "-lib /path/to/maven-ant-tasks-2.1.1.jar" |
| to the ant command. |
| ########################################################################## |
| </fail> |
| </target> |
| <!-- Validation --> |
| <target name="validate" depends="validate-solr"/> |
| <target name="validate-solr" depends="check-legal-solr" unless="validated-solr"/> |
| |
| <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="${basedir}/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/contrib/analysis-extras/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/contrib/clustering/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/contrib/dataimporthandler/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/contrib/extraction/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/contrib/uima/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/example/example-DIH/solr/db/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/example/example-DIH/solr/mail/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/example/example/lib" /> |
| <arg value="-c" /> |
| <arg value="${basedir}/src/test-files/solr/lib" /> |
| </java> |
| </target> |
| |
| <path id="tools.runtime.classpath"> |
| <pathelement location="${common-solr.dir}/../lucene/build/classes/tools"/> |
| </path> |
| <target name="compile-tools" description="Compile the Test Framework and Validation tools"> |
| <sequential> |
| <subant target="compile-tools" inheritall="false" failonerror="true"> |
| <fileset dir="${common-solr.dir}/../lucene" includes="build.xml" /> |
| </subant> |
| </sequential> |
| </target> |
| |
| |
| </project> |