1919# ----------------------------------------------------------------------------
2020
2121# ----------------------------------------------------------------------------
22- # Apache Maven Wrapper startup batch script, version 3.1.1
22+ # Maven Start Up Batch script
2323#
2424# Required ENV vars:
2525# ------------------
2626# JAVA_HOME - location of a JDK home dir
2727#
2828# Optional ENV vars
2929# -----------------
30+ # M2_HOME - location of maven2's installed home dir
3031# MAVEN_OPTS - parameters passed to the Java VM when running Maven
3132# e.g. to debug Maven itself, use
3233# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
3536
3637if [ -z " $MAVEN_SKIP_RC " ] ; then
3738
38- if [ -f /usr/local/etc/mavenrc ] ; then
39- . /usr/local/etc/mavenrc
40- fi
41-
4239 if [ -f /etc/mavenrc ] ; then
4340 . /etc/mavenrc
4441 fi
@@ -61,9 +58,9 @@ case "`uname`" in
6158 # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
6259 if [ -z " $JAVA_HOME " ]; then
6360 if [ -x " /usr/libexec/java_home" ]; then
64- JAVA_HOME=" ` /usr/libexec/java_home` " ; export JAVA_HOME
61+ export JAVA_HOME=" ` /usr/libexec/java_home` "
6562 else
66- JAVA_HOME=" /Library/Java/Home" ; export JAVA_HOME
63+ export JAVA_HOME=" /Library/Java/Home"
6764 fi
6865 fi
6966 ;;
@@ -75,8 +72,36 @@ if [ -z "$JAVA_HOME" ] ; then
7572 fi
7673fi
7774
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+
78101# For Cygwin, ensure paths are in UNIX format before anything is touched
79102if $cygwin ; then
103+ [ -n " $M2_HOME " ] &&
104+ M2_HOME=` cygpath --unix " $M2_HOME " `
80105 [ -n " $JAVA_HOME " ] &&
81106 JAVA_HOME=` cygpath --unix " $JAVA_HOME " `
82107 [ -n " $CLASSPATH " ] &&
85110
86111# For Mingw, ensure paths are in UNIX format before anything is touched
87112if $mingw ; then
113+ [ -n " $M2_HOME " ] &&
114+ M2_HOME=" ` (cd " $M2_HOME " ; pwd)` "
88115 [ -n " $JAVA_HOME " ] &&
89116 JAVA_HOME=" ` (cd " $JAVA_HOME " ; pwd)` "
90117fi
@@ -118,7 +145,7 @@ if [ -z "$JAVACMD" ] ; then
118145 JAVACMD=" $JAVA_HOME /bin/java"
119146 fi
120147 else
121- JAVACMD=" ` \\ unset -f command ; \\ command -v java` "
148+ JAVACMD=" ` which java` "
122149 fi
123150fi
124151
@@ -132,9 +159,12 @@ if [ -z "$JAVA_HOME" ] ; then
132159 echo " Warning: JAVA_HOME environment variable is not set."
133160fi
134161
162+ CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
163+
135164# traverses directory structure from process work directory to filesystem root
136165# first directory with .mvn subdirectory is considered project base directory
137166find_maven_basedir () {
167+
138168 if [ -z " $1 " ]
139169 then
140170 echo " Path not specified to find_maven_basedir"
@@ -154,7 +184,7 @@ find_maven_basedir() {
154184 fi
155185 # end of workaround
156186 done
157- printf ' %s ' " $( cd " $ basedir" ; pwd ) "
187+ echo " ${ basedir} "
158188}
159189
160190# concatenates all lines of a file
@@ -164,16 +194,11 @@ concat_lines() {
164194 fi
165195}
166196
167- BASE_DIR=$( find_maven_basedir " $( dirname $0 ) " )
197+ BASE_DIR=` find_maven_basedir " $( pwd ) " `
168198if [ -z " $BASE_DIR " ]; then
169199 exit 1;
170200fi
171201
172- MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " } ; export MAVEN_PROJECTBASEDIR
173- if [ " $MVNW_VERBOSE " = true ]; then
174- echo $MAVEN_PROJECTBASEDIR
175- fi
176-
177202# #########################################################################################
178203# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
179204# This allows using the maven wrapper in projects that prohibit checking in binary data.
@@ -187,66 +212,59 @@ else
187212 echo " Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
188213 fi
189214 if [ -n " $MVNW_REPOURL " ]; then
190- wrapperUrl =" $MVNW_REPOURL /org/apache /maven/wrapper/maven -wrapper/3.1.1 /maven-wrapper-3.1.1 .jar"
215+ jarUrl =" $MVNW_REPOURL /io/takari /maven-wrapper/0.5.6 /maven-wrapper-0.5.6 .jar"
191216 else
192- wrapperUrl =" https://repo.maven.apache.org/maven2/org/apache /maven/wrapper/maven -wrapper/3.1.1 /maven-wrapper-3.1.1 .jar"
217+ jarUrl =" https://repo.maven.apache.org/maven2/io/takari /maven-wrapper/0.5.6 /maven-wrapper-0.5.6 .jar"
193218 fi
194219 while IFS=" =" read key value; do
195- case " $key " in (wrapperUrl) wrapperUrl =" $value " ; break ;;
220+ case " $key " in (wrapperUrl) jarUrl =" $value " ; break ;;
196221 esac
197222 done < " $BASE_DIR /.mvn/wrapper/maven-wrapper.properties"
198223 if [ " $MVNW_VERBOSE " = true ]; then
199- echo " Downloading from: $wrapperUrl "
224+ echo " Downloading from: $jarUrl "
200225 fi
201226 wrapperJarPath=" $BASE_DIR /.mvn/wrapper/maven-wrapper.jar"
202227 if $cygwin ; then
203228 wrapperJarPath=` cygpath --path --windows " $wrapperJarPath " `
204229 fi
205230
206231 if command -v wget > /dev/null; then
207- QUIET=" --quiet"
208232 if [ " $MVNW_VERBOSE " = true ]; then
209233 echo " Found wget ... using wget"
210- QUIET=" "
211234 fi
212235 if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
213- wget $QUIET " $wrapperUrl " -O " $wrapperJarPath "
236+ wget " $jarUrl " -O " $wrapperJarPath "
214237 else
215- wget $QUIET --http-user=" $MVNW_USERNAME " --http-password=" $MVNW_PASSWORD " " $wrapperUrl " -O " $wrapperJarPath "
238+ wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD " $jarUrl " -O " $wrapperJarPath "
216239 fi
217- [ $? -eq 0 ] || rm -f " $wrapperJarPath "
218240 elif command -v curl > /dev/null; then
219- QUIET=" --silent"
220241 if [ " $MVNW_VERBOSE " = true ]; then
221242 echo " Found curl ... using curl"
222- QUIET=" "
223243 fi
224244 if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
225- curl $QUIET -o " $wrapperJarPath " " $wrapperUrl " -f -L
245+ curl -o " $wrapperJarPath " " $jarUrl " -f
226246 else
227- curl $QUIET --user " $MVNW_USERNAME :$MVNW_PASSWORD " -o " $wrapperJarPath " " $wrapperUrl " -f -L
247+ curl --user $MVNW_USERNAME :$MVNW_PASSWORD -o " $wrapperJarPath " " $jarUrl " -f
228248 fi
229- [ $? -eq 0 ] || rm -f " $wrapperJarPath "
249+
230250 else
231251 if [ " $MVNW_VERBOSE " = true ]; then
232252 echo " Falling back to using Java to download"
233253 fi
234- javaSource=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
235- javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class"
254+ javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
236255 # For Cygwin, switch paths to Windows format before running javac
237256 if $cygwin ; then
238- javaSource=` cygpath --path --windows " $javaSource " `
239257 javaClass=` cygpath --path --windows " $javaClass " `
240258 fi
241- if [ -e " $javaSource " ]; then
242- if [ ! -e " $javaClass " ]; then
259+ if [ -e " $javaClass " ]; then
260+ if [ ! -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class " ]; then
243261 if [ " $MVNW_VERBOSE " = true ]; then
244262 echo " - Compiling MavenWrapperDownloader.java ..."
245263 fi
246264 # Compiling the Java class
247- (" $JAVA_HOME /bin/javac" " $javaSource " )
265+ (" $JAVA_HOME /bin/javac" " $javaClass " )
248266 fi
249- if [ -e " $javaClass " ]; then
267+ if [ -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class " ]; then
250268 # Running the downloader
251269 if [ " $MVNW_VERBOSE " = true ]; then
252270 echo " - Running MavenWrapperDownloader.java ..."
260278# End of extension
261279# #########################################################################################
262280
281+ export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " }
282+ if [ " $MVNW_VERBOSE " = true ]; then
283+ echo $MAVEN_PROJECTBASEDIR
284+ fi
263285MAVEN_OPTS=" $( concat_lines " $MAVEN_PROJECTBASEDIR /.mvn/jvm.config" ) $MAVEN_OPTS "
264286
265287# For Cygwin, switch paths to Windows format before running java
266288if $cygwin ; then
289+ [ -n " $M2_HOME " ] &&
290+ M2_HOME=` cygpath --path --windows " $M2_HOME " `
267291 [ -n " $JAVA_HOME " ] &&
268292 JAVA_HOME=` cygpath --path --windows " $JAVA_HOME " `
269293 [ -n " $CLASSPATH " ] &&
@@ -281,7 +305,6 @@ WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281305
282306exec " $JAVACMD " \
283307 $MAVEN_OPTS \
284- $MAVEN_DEBUG_OPTS \
285308 -classpath " $MAVEN_PROJECTBASEDIR /.mvn/wrapper/maven-wrapper.jar" \
286- " -Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR} " \
309+ " -Dmaven.home= ${M2_HOME} " " -Dmaven. multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR} " \
287310 ${WRAPPER_LAUNCHER} $MAVEN_CONFIG " $@ "
0 commit comments