  ------
  Installing an artifact to a specific local repository path
  ------
  Vincent Siveton
  Robert Scholte
  ------
  2013-07-20
  ------

~~ 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.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html

Installing an artifact to a specific local repository path

  General information about how to copy jars into your local repository can be found in the 
  {{{http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html}Guide to installing 3rd party JARs}}

  By default, the Apache Maven Install Plugin uses the local repository defined in the <<<settings.xml>>> to install an artifact.

  You could install an artifact on a specific local repository  by setting the <<<localRepositoryPath>>>
  parameter when installing.

+---+
mvn ${project.groupId}:${project.artifactId}:${project.version}:install-file  -Dfile=path-to-your-artifact-jar \
                                                                              -DgroupId=your.groupId \
                                                                              -DartifactId=your-artifactId \
                                                                              -Dversion=version \
                                                                              -Dpackaging=jar \
                                                                              -DlocalRepositoryPath=path-to-specific-local-repo
+---+

  <<Note>>: By using the fully qualified path of a goal, you're ensured to be using the preferred version of the maven-install-plugin. When using <<<mvn install:install-file>>> 
  its version depends on its specification in the pom or the version of Apache Maven.
