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- # http ://www.apache.org/licenses/LICENSE-2.0
11+ # https ://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+ # Maven Start Up Batch script
2323#
2424# Required ENV vars:
2525# ------------------
@@ -108,13 +108,12 @@ if $cygwin ; then
108108 CLASSPATH=` cygpath --path --unix " $CLASSPATH " `
109109fi
110110
111- # For Migwn , ensure paths are in UNIX format before anything is touched
111+ # For Mingw , ensure paths are in UNIX format before anything is touched
112112if $mingw ; then
113113 [ -n " $M2_HOME " ] &&
114114 M2_HOME=" ` (cd " $M2_HOME " ; pwd)` "
115115 [ -n " $JAVA_HOME " ] &&
116116 JAVA_HOME=" ` (cd " $JAVA_HOME " ; pwd)` "
117- # TODO classpath?
118117fi
119118
120119if [ -z " $JAVA_HOME " ]; then
@@ -200,8 +199,89 @@ if [ -z "$BASE_DIR" ]; then
200199 exit 1;
201200fi
202201
202+ # #########################################################################################
203+ # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
204+ # This allows using the maven wrapper in projects that prohibit checking in binary data.
205+ # #########################################################################################
206+ if [ -r " $BASE_DIR /.mvn/wrapper/maven-wrapper.jar" ]; then
207+ if [ " $MVNW_VERBOSE " = true ]; then
208+ echo " Found .mvn/wrapper/maven-wrapper.jar"
209+ fi
210+ else
211+ if [ " $MVNW_VERBOSE " = true ]; then
212+ echo " Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
213+ fi
214+ if [ -n " $MVNW_REPOURL " ]; then
215+ jarUrl=" $MVNW_REPOURL /io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
216+ else
217+ jarUrl=" https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
218+ fi
219+ while IFS=" =" read key value; do
220+ case " $key " in (wrapperUrl) jarUrl=" $value " ; break ;;
221+ esac
222+ done < " $BASE_DIR /.mvn/wrapper/maven-wrapper.properties"
223+ if [ " $MVNW_VERBOSE " = true ]; then
224+ echo " Downloading from: $jarUrl "
225+ fi
226+ wrapperJarPath=" $BASE_DIR /.mvn/wrapper/maven-wrapper.jar"
227+ if $cygwin ; then
228+ wrapperJarPath=` cygpath --path --windows " $wrapperJarPath " `
229+ fi
230+
231+ if command -v wget > /dev/null; then
232+ if [ " $MVNW_VERBOSE " = true ]; then
233+ echo " Found wget ... using wget"
234+ fi
235+ if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
236+ wget " $jarUrl " -O " $wrapperJarPath "
237+ else
238+ wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD " $jarUrl " -O " $wrapperJarPath "
239+ fi
240+ elif command -v curl > /dev/null; then
241+ if [ " $MVNW_VERBOSE " = true ]; then
242+ echo " Found curl ... using curl"
243+ fi
244+ if [ -z " $MVNW_USERNAME " ] || [ -z " $MVNW_PASSWORD " ]; then
245+ curl -o " $wrapperJarPath " " $jarUrl " -f
246+ else
247+ curl --user $MVNW_USERNAME :$MVNW_PASSWORD -o " $wrapperJarPath " " $jarUrl " -f
248+ fi
249+
250+ else
251+ if [ " $MVNW_VERBOSE " = true ]; then
252+ echo " Falling back to using Java to download"
253+ fi
254+ javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
255+ # For Cygwin, switch paths to Windows format before running javac
256+ if $cygwin ; then
257+ javaClass=` cygpath --path --windows " $javaClass " `
258+ fi
259+ if [ -e " $javaClass " ]; then
260+ if [ ! -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class" ]; then
261+ if [ " $MVNW_VERBOSE " = true ]; then
262+ echo " - Compiling MavenWrapperDownloader.java ..."
263+ fi
264+ # Compiling the Java class
265+ (" $JAVA_HOME /bin/javac" " $javaClass " )
266+ fi
267+ if [ -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class" ]; then
268+ # Running the downloader
269+ if [ " $MVNW_VERBOSE " = true ]; then
270+ echo " - Running MavenWrapperDownloader.java ..."
271+ fi
272+ (" $JAVA_HOME /bin/java" -cp .mvn/wrapper MavenWrapperDownloader " $MAVEN_PROJECTBASEDIR " )
273+ fi
274+ fi
275+ fi
276+ fi
277+ # #########################################################################################
278+ # End of extension
279+ # #########################################################################################
280+
203281export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " }
204- echo $MAVEN_PROJECTBASEDIR
282+ if [ " $MVNW_VERBOSE " = true ]; then
283+ echo $MAVEN_PROJECTBASEDIR
284+ fi
205285MAVEN_OPTS=" $( concat_lines " $MAVEN_PROJECTBASEDIR /.mvn/jvm.config" ) $MAVEN_OPTS "
206286
207287# For Cygwin, switch paths to Windows format before running java
@@ -216,6 +296,11 @@ if $cygwin; then
216296 MAVEN_PROJECTBASEDIR=` cygpath --path --windows " $MAVEN_PROJECTBASEDIR " `
217297fi
218298
299+ # Provide a "standardized" way to retrieve the CLI args that will
300+ # work with both Windows and non-Windows executions.
301+ MAVEN_CMD_LINE_ARGS=" $MAVEN_CONFIG $@ "
302+ export MAVEN_CMD_LINE_ARGS
303+
219304WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
220305
221306exec " $JAVACMD " \
0 commit comments