| ==================================== |
| Lucene/Solr Maven build instructions |
| ==================================== |
| |
| Contents: |
| |
| A. How to use nightly Jenkins-built Lucene/Solr Maven artifacts |
| B. How to generate Lucene Maven artifacts |
| C. How to generate Solr Maven artifacts |
| D. How to use Maven to build Lucene/Solr |
| |
| ----- |
| |
| A. How to use nightly Jenkins-built Lucene/Solr Maven artifacts |
| |
| The most recently produced nightly Jenkins-built Lucene and Solr Maven |
| artifacts are available in Maven repository layout here: |
| |
| <https://builds.apache.org/hudson/job/Lucene-Solr-Maven-3.x/lastSuccessfulBuild/artifact/maven_artifacts/> |
| |
| An example POM snippet: |
| |
| <project ...> |
| ... |
| <repositories> |
| ... |
| <repository> |
| <id>lucene-solr-jenkins-branch_3x</id> |
| <name>Lucene/Solr Jenkins branch_3x</name> |
| <url>https://builds.apache.org/job/Lucene-Solr-Maven-3.x/lastSuccessfulBuild/artifact/maven_artifacts</url> |
| <layout>default</layout> |
| <snapshots> |
| <enabled>true</enabled> |
| </snapshots> |
| </repository> |
| |
| |
| B. How to generate Lucene Maven artifacts |
| |
| 1. Prerequisites: JDK 1.5+ and Ant 1.7.X |
| |
| 2. Run the following command from the lucene/ directory: |
| |
| ant generate-maven-artifacts |
| |
| The above command will create an internal Maven repository under |
| lucene/dist/maven/, including POMs, binary .jars, source .jars, |
| and javadoc .jars, for Lucene Core, for the Lucene test framework, |
| and for each contrib. |
| |
| |
| C. How to generate Solr Maven artifacts |
| |
| 1. Prerequisites: JDK 1.5+ and Ant 1.7.X |
| |
| 2. Run the following from the solr/ directory: |
| |
| ant generate-maven-artifacts |
| |
| The above command will create an internal Maven repository under |
| solr/package/maven/, including POMs, binary .jars, source .jars, |
| and javadoc .jars, for Solr Core, for the Solr test framework, |
| for each contrib, and for the Solr .war (for which there are no |
| source or javadoc .jars). |
| |
| |
| D. How to use Maven to build Lucene/Solr |
| |
| In summary, to enable Maven builds, perform the following: |
| |
| svn update |
| ant get-maven-poms |
| mvn -N -Pbootstrap install |
| |
| The details, followed by some example Maven commands: |
| |
| 1. Prerequisites: JDK 1.5+; Maven 2.2.1 or 3.0.X |
| |
| 2. Make sure your sources are up to date. If you checked your sources out |
| from the Apache Subversion repository, run "svn update" from the top |
| level. |
| |
| 3. Copy the Maven POM templates from under dev-tools/maven/ to where they |
| they need to go in order to drive the Maven build, using the following |
| command from the top-level directory: |
| |
| ant get-maven-poms |
| |
| Note that you will need to do this whenever changes to the POM |
| templates are committed. It's a good idea to follow every "svn update" |
| with "ant get-maven-poms" for this reason. |
| |
| The above command copies all of the POM templates from dev-tools/maven/, |
| filling in the project version with the default "X.X-SNAPSHOT". If you |
| want the POMs and the Maven-built artifacts to have a version other than |
| the default, you can supply an alternate version on the command line |
| with the above command, e.g.: |
| |
| ant -Dversion=4.0-my-special-version get-maven-poms |
| |
| 4. Populate your local repository with .jars & POMs for dependencies that |
| are not available from public Maven repositories (a.k.a. "non-mavenized |
| dependencies"): |
| |
| mvn -N -Pbootstrap install |
| |
| Note that you will need to do this whenever changes to the non-Mavenized |
| dependencies are committed. It's a good idea to follow every |
| "svn update" with "ant get-maven-poms" and "mvn -N -Pbootstrap install" |
| for this reason. |
| |
| |
| Some example Maven commands you can use after you perform the above |
| preparatory steps: |
| |
| - Compile, package, and install all binary artifacts to your local |
| repository: |
| |
| mvn install |
| |
| After compiling and packaging, but before installing each module's |
| artifact, the above command will also run all the module's tests. |
| |
| - Compile, package, and install all binary artifacts to your local |
| repository, without running any tests: |
| |
| mvn -DskipTests install |
| |
| - Compile, package, and install all binary and source artifacts to your |
| local repository, without running any tests: |
| |
| mvn -DskipTests source:jar-no-fork install |
| |
| - Run all tests: |
| |
| mvn test |
| |
| - Run all test methods defined in a test class: |
| |
| mvn -Dtest=TestClassName test |