88# "License"); you may not use this file except in compliance
99# with the License. You may obtain a copy of the License at
1010#
11- # https ://www.apache.org/licenses/LICENSE-2.0
11+ # http ://www.apache.org/licenses/LICENSE-2.0
1212#
1313# Unless required by applicable law or agreed to in writing,
1414# software distributed under the License is distributed on an
1919# ----------------------------------------------------------------------------
2020
2121# ----------------------------------------------------------------------------
22- # Maven2 Start Up Batch script
22+ # Apache Maven Wrapper startup batch script, version 3.1.1
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
3130# MAVEN_OPTS - parameters passed to the Java VM when running Maven
3231# e.g. to debug Maven itself, use
3332# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
3635
3736if [ -z " $MAVEN_SKIP_RC " ] ; then
3837
38+ if [ -f /usr/local/etc/mavenrc ] ; then
39+ . /usr/local/etc/mavenrc
40+ fi
41+
3942 if [ -f /etc/mavenrc ] ; then
4043 . /etc/mavenrc
4144 fi
@@ -58,9 +61,9 @@ case "`uname`" in
5861 # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
5962 if [ -z " $JAVA_HOME " ]; then
6063 if [ -x " /usr/libexec/java_home" ]; then
61- export JAVA_HOME=" ` /usr/libexec/java_home` "
64+ JAVA_HOME=" ` /usr/libexec/java_home` " ; export JAVA_HOME
6265 else
63- export JAVA_HOME=" /Library/Java/Home"
66+ JAVA_HOME=" /Library/Java/Home" ; export JAVA_HOME
6467 fi
6568 fi
6669 ;;
@@ -72,36 +75,8 @@ if [ -z "$JAVA_HOME" ] ; then
7275 fi
7376fi
7477
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-
10178# For Cygwin, ensure paths are in UNIX format before anything is touched
10279if $cygwin ; then
103- [ -n " $M2_HOME " ] &&
104- M2_HOME=` cygpath --unix " $M2_HOME " `
10580 [ -n " $JAVA_HOME " ] &&
10681 JAVA_HOME=` cygpath --unix " $JAVA_HOME " `
10782 [ -n " $CLASSPATH " ] &&
11085
11186# For Mingw, ensure paths are in UNIX format before anything is touched
11287if $mingw ; then
113- [ -n " $M2_HOME " ] &&
114- M2_HOME=" ` (cd " $M2_HOME " ; pwd)` "
11588 [ -n " $JAVA_HOME " ] &&
11689 JAVA_HOME=" ` (cd " $JAVA_HOME " ; pwd)` "
117- # TODO classpath?
11890fi
11991
12092if [ -z " $JAVA_HOME " ]; then
@@ -146,7 +118,7 @@ if [ -z "$JAVACMD" ] ; then
146118 JAVACMD=" $JAVA_HOME /bin/java"
147119 fi
148120 else
149- JAVACMD=" ` which java` "
121+ JAVACMD=" ` \\ unset -f command ; \\ command -v java` "
150122 fi
151123fi
152124
@@ -160,12 +132,9 @@ if [ -z "$JAVA_HOME" ] ; then
160132 echo " Warning: JAVA_HOME environment variable is not set."
161133fi
162134
163- CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164-
165135# traverses directory structure from process work directory to filesystem root
166136# first directory with .mvn subdirectory is considered project base directory
167137find_maven_basedir () {
168-
169138 if [ -z " $1 " ]
170139 then
171140 echo " Path not specified to find_maven_basedir"
@@ -185,7 +154,7 @@ find_maven_basedir() {
185154 fi
186155 # end of workaround
187156 done
188- echo " ${ basedir} "
157+ printf ' %s ' " $( cd " $ basedir" ; pwd ) "
189158}
190159
191160# concatenates all lines of a file
@@ -195,11 +164,16 @@ concat_lines() {
195164 fi
196165}
197166
198- BASE_DIR=` find_maven_basedir " $( pwd ) " `
167+ BASE_DIR=$( find_maven_basedir " $( dirname $0 ) " )
199168if [ -z " $BASE_DIR " ]; then
200169 exit 1;
201170fi
202171
172+ MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " } ; export MAVEN_PROJECTBASEDIR
173+ if [ " $MVNW_VERBOSE " = true ]; then
174+ echo $MAVEN_PROJECTBASEDIR
175+ fi
176+
203177# #########################################################################################
204178# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205179# This allows using the maven wrapper in projects that prohibit checking in binary data.
@@ -212,40 +186,67 @@ else
212186 if [ " $MVNW_VERBOSE " = true ]; then
213187 echo " Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214188 fi
215- jarUrl=" https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.0/maven-wrapper-0.4.0.jar"
189+ if [ -n " $MVNW_REPOURL " ]; then
190+ wrapperUrl=" $MVNW_REPOURL /org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
191+ else
192+ wrapperUrl=" https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar"
193+ fi
216194 while IFS=" =" read key value; do
217- case " $key " in (wrapperUrl) jarUrl =" $value " ; break ;;
195+ case " $key " in (wrapperUrl) wrapperUrl =" $value " ; break ;;
218196 esac
219197 done < " $BASE_DIR /.mvn/wrapper/maven-wrapper.properties"
220198 if [ " $MVNW_VERBOSE " = true ]; then
221- echo " Downloading from: $jarUrl "
199+ echo " Downloading from: $wrapperUrl "
222200 fi
223201 wrapperJarPath=" $BASE_DIR /.mvn/wrapper/maven-wrapper.jar"
202+ if $cygwin ; then
203+ wrapperJarPath=` cygpath --path --windows " $wrapperJarPath " `
204+ fi
224205
225206 if command -v wget > /dev/null; then
207+ QUIET=" --quiet"
226208 if [ " $MVNW_VERBOSE " = true ]; then
227209 echo " Found wget ... using wget"
210+ QUIET=" "
228211 fi
229- wget " $jarUrl " -O " $wrapperJarPath "
212+ if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
213+ wget $QUIET " $wrapperUrl " -O " $wrapperJarPath "
214+ else
215+ wget $QUIET --http-user=" $MVNW_USERNAME " --http-password=" $MVNW_PASSWORD " " $wrapperUrl " -O " $wrapperJarPath "
216+ fi
217+ [ $? -eq 0 ] || rm -f " $wrapperJarPath "
230218 elif command -v curl > /dev/null; then
219+ QUIET=" --silent"
231220 if [ " $MVNW_VERBOSE " = true ]; then
232221 echo " Found curl ... using curl"
222+ QUIET=" "
223+ fi
224+ if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
225+ curl $QUIET -o " $wrapperJarPath " " $wrapperUrl " -f -L
226+ else
227+ curl $QUIET --user " $MVNW_USERNAME :$MVNW_PASSWORD " -o " $wrapperJarPath " " $wrapperUrl " -f -L
233228 fi
234- curl -o " $wrapperJarPath " " $jarUrl "
229+ [ $? -eq 0 ] || rm -f " $wrapperJarPath "
235230 else
236231 if [ " $MVNW_VERBOSE " = true ]; then
237232 echo " Falling back to using Java to download"
238233 fi
239- javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
240- if [ -e " $javaClass " ]; then
241- if [ ! -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class" ]; then
234+ javaSource=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
235+ javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class"
236+ # For Cygwin, switch paths to Windows format before running javac
237+ if $cygwin ; then
238+ javaSource=` cygpath --path --windows " $javaSource " `
239+ javaClass=` cygpath --path --windows " $javaClass " `
240+ fi
241+ if [ -e " $javaSource " ]; then
242+ if [ ! -e " $javaClass " ]; then
242243 if [ " $MVNW_VERBOSE " = true ]; then
243244 echo " - Compiling MavenWrapperDownloader.java ..."
244245 fi
245246 # Compiling the Java class
246- (" $JAVA_HOME /bin/javac" " $javaClass " )
247+ (" $JAVA_HOME /bin/javac" " $javaSource " )
247248 fi
248- if [ -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class " ]; then
249+ if [ -e " $javaClass " ]; then
249250 # Running the downloader
250251 if [ " $MVNW_VERBOSE " = true ]; then
251252 echo " - Running MavenWrapperDownloader.java ..."
259260# End of extension
260261# #########################################################################################
261262
262- export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " }
263- if [ " $MVNW_VERBOSE " = true ]; then
264- echo $MAVEN_PROJECTBASEDIR
265- fi
266263MAVEN_OPTS=" $( concat_lines " $MAVEN_PROJECTBASEDIR /.mvn/jvm.config" ) $MAVEN_OPTS "
267264
268265# For Cygwin, switch paths to Windows format before running java
269266if $cygwin ; then
270- [ -n " $M2_HOME " ] &&
271- M2_HOME=` cygpath --path --windows " $M2_HOME " `
272267 [ -n " $JAVA_HOME " ] &&
273268 JAVA_HOME=` cygpath --path --windows " $JAVA_HOME " `
274269 [ -n " $CLASSPATH " ] &&
@@ -277,10 +272,16 @@ if $cygwin; then
277272 MAVEN_PROJECTBASEDIR=` cygpath --path --windows " $MAVEN_PROJECTBASEDIR " `
278273fi
279274
275+ # Provide a "standardized" way to retrieve the CLI args that will
276+ # work with both Windows and non-Windows executions.
277+ MAVEN_CMD_LINE_ARGS=" $MAVEN_CONFIG $@ "
278+ export MAVEN_CMD_LINE_ARGS
279+
280280WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281281
282282exec " $JAVACMD " \
283283 $MAVEN_OPTS \
284+ $MAVEN_DEBUG_OPTS \
284285 -classpath " $MAVEN_PROJECTBASEDIR /.mvn/wrapper/maven-wrapper.jar" \
285- " -Dmaven.home= ${M2_HOME} " " -Dmaven. multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR} " \
286+ " -Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR} " \
286287 ${WRAPPER_LAUNCHER} $MAVEN_CONFIG " $@ "
0 commit comments