| 
 | 1 | +#!/bin/sh  | 
 | 2 | +# ----------------------------------------------------------------------------  | 
 | 3 | +# Licensed to the Apache Software Foundation (ASF) under one  | 
 | 4 | +# or more contributor license agreements.  See the NOTICE file  | 
 | 5 | +# distributed with this work for additional information  | 
 | 6 | +# regarding copyright ownership.  The ASF licenses this file  | 
 | 7 | +# to you under the Apache License, Version 2.0 (the  | 
 | 8 | +# "License"); you may not use this file except in compliance  | 
 | 9 | +# with the License.  You may obtain a copy of the License at  | 
 | 10 | +#  | 
 | 11 | +#    http://www.apache.org/licenses/LICENSE-2.0  | 
 | 12 | +#  | 
 | 13 | +# Unless required by applicable law or agreed to in writing,  | 
 | 14 | +# software distributed under the License is distributed on an  | 
 | 15 | +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  | 
 | 16 | +# KIND, either express or implied.  See the License for the  | 
 | 17 | +# specific language governing permissions and limitations  | 
 | 18 | +# under the License.  | 
 | 19 | +# ----------------------------------------------------------------------------  | 
 | 20 | + | 
 | 21 | +# ----------------------------------------------------------------------------  | 
 | 22 | +# Maven2 Start Up Batch script  | 
 | 23 | +#  | 
 | 24 | +# Required ENV vars:  | 
 | 25 | +# ------------------  | 
 | 26 | +#   JAVA_HOME - location of a JDK home dir  | 
 | 27 | +#  | 
 | 28 | +# Optional ENV vars  | 
 | 29 | +# -----------------  | 
 | 30 | +#   M2_HOME - location of maven2's installed home dir  | 
 | 31 | +#   MAVEN_OPTS - parameters passed to the Java VM when running Maven  | 
 | 32 | +#     e.g. to debug Maven itself, use  | 
 | 33 | +#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000  | 
 | 34 | +#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files  | 
 | 35 | +# ----------------------------------------------------------------------------  | 
 | 36 | + | 
 | 37 | +if [ -z "$MAVEN_SKIP_RC" ] ; then  | 
 | 38 | + | 
 | 39 | +  if [ -f /etc/mavenrc ] ; then  | 
 | 40 | +    . /etc/mavenrc  | 
 | 41 | +  fi  | 
 | 42 | + | 
 | 43 | +  if [ -f "$HOME/.mavenrc" ] ; then  | 
 | 44 | +    . "$HOME/.mavenrc"  | 
 | 45 | +  fi  | 
 | 46 | + | 
 | 47 | +fi  | 
 | 48 | + | 
 | 49 | +# OS specific support.  $var _must_ be set to either true or false.  | 
 | 50 | +cygwin=false;  | 
 | 51 | +darwin=false;  | 
 | 52 | +mingw=false  | 
 | 53 | +case "`uname`" in  | 
 | 54 | +  CYGWIN*) cygwin=true ;;  | 
 | 55 | +  MINGW*) mingw=true;;  | 
 | 56 | +  Darwin*) darwin=true  | 
 | 57 | +    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home  | 
 | 58 | +    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html  | 
 | 59 | +    if [ -z "$JAVA_HOME" ]; then  | 
 | 60 | +      if [ -x "/usr/libexec/java_home" ]; then  | 
 | 61 | +        export JAVA_HOME="`/usr/libexec/java_home`"  | 
 | 62 | +      else  | 
 | 63 | +        export JAVA_HOME="/Library/Java/Home"  | 
 | 64 | +      fi  | 
 | 65 | +    fi  | 
 | 66 | +    ;;  | 
 | 67 | +esac  | 
 | 68 | + | 
 | 69 | +if [ -z "$JAVA_HOME" ] ; then  | 
 | 70 | +  if [ -r /etc/gentoo-release ] ; then  | 
 | 71 | +    JAVA_HOME=`java-config --jre-home`  | 
 | 72 | +  fi  | 
 | 73 | +fi  | 
 | 74 | + | 
 | 75 | +if [ -z "$M2_HOME" ] ; then  | 
 | 76 | +  ## resolve links - $0 may be a link to maven's home  | 
 | 77 | +  PRG="$0"  | 
 | 78 | + | 
 | 79 | +  # need this for relative symlinks  | 
 | 80 | +  while [ -h "$PRG" ] ; do  | 
 | 81 | +    ls=`ls -ld "$PRG"`  | 
 | 82 | +    link=`expr "$ls" : '.*-> \(.*\)$'`  | 
 | 83 | +    if expr "$link" : '/.*' > /dev/null; then  | 
 | 84 | +      PRG="$link"  | 
 | 85 | +    else  | 
 | 86 | +      PRG="`dirname "$PRG"`/$link"  | 
 | 87 | +    fi  | 
 | 88 | +  done  | 
 | 89 | + | 
 | 90 | +  saveddir=`pwd`  | 
 | 91 | + | 
 | 92 | +  M2_HOME=`dirname "$PRG"`/..  | 
 | 93 | + | 
 | 94 | +  # make it fully qualified  | 
 | 95 | +  M2_HOME=`cd "$M2_HOME" && pwd`  | 
 | 96 | + | 
 | 97 | +  cd "$saveddir"  | 
 | 98 | +  # echo Using m2 at $M2_HOME  | 
 | 99 | +fi  | 
 | 100 | + | 
 | 101 | +# For Cygwin, ensure paths are in UNIX format before anything is touched  | 
 | 102 | +if $cygwin ; then  | 
 | 103 | +  [ -n "$M2_HOME" ] &&  | 
 | 104 | +    M2_HOME=`cygpath --unix "$M2_HOME"`  | 
 | 105 | +  [ -n "$JAVA_HOME" ] &&  | 
 | 106 | +    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`  | 
 | 107 | +  [ -n "$CLASSPATH" ] &&  | 
 | 108 | +    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`  | 
 | 109 | +fi  | 
 | 110 | + | 
 | 111 | +# For Migwn, ensure paths are in UNIX format before anything is touched  | 
 | 112 | +if $mingw ; then  | 
 | 113 | +  [ -n "$M2_HOME" ] &&  | 
 | 114 | +    M2_HOME="`(cd "$M2_HOME"; pwd)`"  | 
 | 115 | +  [ -n "$JAVA_HOME" ] &&  | 
 | 116 | +    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"  | 
 | 117 | +  # TODO classpath?  | 
 | 118 | +fi  | 
 | 119 | + | 
 | 120 | +if [ -z "$JAVA_HOME" ]; then  | 
 | 121 | +  javaExecutable="`which javac`"  | 
 | 122 | +  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then  | 
 | 123 | +    # readlink(1) is not available as standard on Solaris 10.  | 
 | 124 | +    readLink=`which readlink`  | 
 | 125 | +    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then  | 
 | 126 | +      if $darwin ; then  | 
 | 127 | +        javaHome="`dirname \"$javaExecutable\"`"  | 
 | 128 | +        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"  | 
 | 129 | +      else  | 
 | 130 | +        javaExecutable="`readlink -f \"$javaExecutable\"`"  | 
 | 131 | +      fi  | 
 | 132 | +      javaHome="`dirname \"$javaExecutable\"`"  | 
 | 133 | +      javaHome=`expr "$javaHome" : '\(.*\)/bin'`  | 
 | 134 | +      JAVA_HOME="$javaHome"  | 
 | 135 | +      export JAVA_HOME  | 
 | 136 | +    fi  | 
 | 137 | +  fi  | 
 | 138 | +fi  | 
 | 139 | + | 
 | 140 | +if [ -z "$JAVACMD" ] ; then  | 
 | 141 | +  if [ -n "$JAVA_HOME"  ] ; then  | 
 | 142 | +    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then  | 
 | 143 | +      # IBM's JDK on AIX uses strange locations for the executables  | 
 | 144 | +      JAVACMD="$JAVA_HOME/jre/sh/java"  | 
 | 145 | +    else  | 
 | 146 | +      JAVACMD="$JAVA_HOME/bin/java"  | 
 | 147 | +    fi  | 
 | 148 | +  else  | 
 | 149 | +    JAVACMD="`which java`"  | 
 | 150 | +  fi  | 
 | 151 | +fi  | 
 | 152 | + | 
 | 153 | +if [ ! -x "$JAVACMD" ] ; then  | 
 | 154 | +  echo "Error: JAVA_HOME is not defined correctly." >&2  | 
 | 155 | +  echo "  We cannot execute $JAVACMD" >&2  | 
 | 156 | +  exit 1  | 
 | 157 | +fi  | 
 | 158 | + | 
 | 159 | +if [ -z "$JAVA_HOME" ] ; then  | 
 | 160 | +  echo "Warning: JAVA_HOME environment variable is not set."  | 
 | 161 | +fi  | 
 | 162 | + | 
 | 163 | +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher  | 
 | 164 | + | 
 | 165 | +# traverses directory structure from process work directory to filesystem root  | 
 | 166 | +# first directory with .mvn subdirectory is considered project base directory  | 
 | 167 | +find_maven_basedir() {  | 
 | 168 | + | 
 | 169 | +  if [ -z "$1" ]  | 
 | 170 | +  then  | 
 | 171 | +    echo "Path not specified to find_maven_basedir"  | 
 | 172 | +    return 1  | 
 | 173 | +  fi  | 
 | 174 | + | 
 | 175 | +  basedir="$1"  | 
 | 176 | +  wdir="$1"  | 
 | 177 | +  while [ "$wdir" != '/' ] ; do  | 
 | 178 | +    if [ -d "$wdir"/.mvn ] ; then  | 
 | 179 | +      basedir=$wdir  | 
 | 180 | +      break  | 
 | 181 | +    fi  | 
 | 182 | +    # workaround for JBEAP-8937 (on Solaris 10/Sparc)  | 
 | 183 | +    if [ -d "${wdir}" ]; then  | 
 | 184 | +      wdir=`cd "$wdir/.."; pwd`  | 
 | 185 | +    fi  | 
 | 186 | +    # end of workaround  | 
 | 187 | +  done  | 
 | 188 | +  echo "${basedir}"  | 
 | 189 | +}  | 
 | 190 | + | 
 | 191 | +# concatenates all lines of a file  | 
 | 192 | +concat_lines() {  | 
 | 193 | +  if [ -f "$1" ]; then  | 
 | 194 | +    echo "$(tr -s '\n' ' ' < "$1")"  | 
 | 195 | +  fi  | 
 | 196 | +}  | 
 | 197 | + | 
 | 198 | +BASE_DIR=`find_maven_basedir "$(pwd)"`  | 
 | 199 | +if [ -z "$BASE_DIR" ]; then  | 
 | 200 | +  exit 1;  | 
 | 201 | +fi  | 
 | 202 | + | 
 | 203 | +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}  | 
 | 204 | +echo $MAVEN_PROJECTBASEDIR  | 
 | 205 | +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"  | 
 | 206 | + | 
 | 207 | +# For Cygwin, switch paths to Windows format before running java  | 
 | 208 | +if $cygwin; then  | 
 | 209 | +  [ -n "$M2_HOME" ] &&  | 
 | 210 | +    M2_HOME=`cygpath --path --windows "$M2_HOME"`  | 
 | 211 | +  [ -n "$JAVA_HOME" ] &&  | 
 | 212 | +    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`  | 
 | 213 | +  [ -n "$CLASSPATH" ] &&  | 
 | 214 | +    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`  | 
 | 215 | +  [ -n "$MAVEN_PROJECTBASEDIR" ] &&  | 
 | 216 | +    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`  | 
 | 217 | +fi  | 
 | 218 | + | 
 | 219 | +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain  | 
 | 220 | + | 
 | 221 | +exec "$JAVACMD" \  | 
 | 222 | +  $MAVEN_OPTS \  | 
 | 223 | +  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \  | 
 | 224 | +  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \  | 
 | 225 | +  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"  | 
0 commit comments