bash-it/plugins/available/maven.plugin.bash

43 lines
1.5 KiB
Bash

cite about-plugin
about-plugin 'maven helper functions'
usemvn ()
{
about 'Switches between available Maven versions for the current shell. Lists the available Maven versions if called without a parameter. The root directory for Maven installations can be defined using the variable MAVEN_INSTALL_ROOT. If this is not defined, /usr/local is assumed. The Maven directories under this directory are expected to be named apache-maven-*'
group 'maven'
param '1: Maven version to switch to'
example 'usemvn 3.0.4'
if [ -z "$MAVEN_INSTALL_ROOT" ]
then
local MAVEN_INSTALL_ROOT="/usr/local"
fi
if [ -z "$1" -o ! -x "$MAVEN_INSTALL_ROOT/apache-maven-$1/bin/mvn" ]
then
echo "Looking for Maven installations in $MAVEN_INSTALL_ROOT/apache-maven-*"
local prefix="Syntax: usemvn "
for i in $MAVEN_INSTALL_ROOT/apache-maven-*
do
if [ -x "$i/bin/mvn" ]; then
echo -n "$prefix$(basename $i | sed 's/^apache-maven-//')"
prefix=" | "
fi
done
echo ""
else
# Undefine M2_HOME if it is defined, as it gets in the way. Use MAVEN_HOME instead, which works for both Maven 2 and 3.
if [ -n "$M2_HOME" ]
then
unset M2_HOME
fi
if [ -z "$MAVEN_HOME" ]
then
export PATH=$MAVEN_INSTALL_ROOT/apache-maven-$1/bin:$PATH
else
export PATH=$(echo $PATH|sed -e "s:$MAVEN_HOME/bin:$MAVEN_INSTALL_ROOT/apache-maven-$1/bin:g")
fi
export MAVEN_HOME=$MAVEN_INSTALL_ROOT/apache-maven-$1
fi
}