@@ -54,38 +54,16 @@ case "`uname`" in
54
54
CYGWIN* ) cygwin=true ;;
55
55
MINGW* ) mingw=true;;
56
56
Darwin* ) darwin=true
57
- #
58
- # Look for the Apple JDKs first to preserve the existing behaviour, and then look
59
- # for the new JDKs provided by Oracle.
60
- #
61
- if [ -z " $JAVA_HOME " ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
62
- #
63
- # Apple JDKs
64
- #
65
- export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
66
- fi
67
-
68
- if [ -z " $JAVA_HOME " ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
69
- #
70
- # Apple JDKs
71
- #
72
- export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
73
- fi
74
-
75
- if [ -z " $JAVA_HOME " ] && [ -L " /Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
76
- #
77
- # Oracle JDKs
78
- #
79
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
80
- fi
81
-
82
- if [ -z " $JAVA_HOME " ] && [ -x " /usr/libexec/java_home" ]; then
83
- #
84
- # Apple JDKs
85
- #
86
- export JAVA_HOME=` /usr/libexec/java_home`
87
- fi
88
- ;;
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
+ ;;
89
67
esac
90
68
91
69
if [ -z " $JAVA_HOME " ] ; then
@@ -130,7 +108,7 @@ if $cygwin ; then
130
108
CLASSPATH=` cygpath --path --unix " $CLASSPATH " `
131
109
fi
132
110
133
- # 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
134
112
if $mingw ; then
135
113
[ -n " $M2_HOME " ] &&
136
114
M2_HOME=" ` (cd " $M2_HOME " ; pwd)` "
184
162
185
163
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
186
164
187
- # For Cygwin, switch paths to Windows format before running java
188
- if $cygwin ; then
189
- [ -n " $M2_HOME " ] &&
190
- M2_HOME=` cygpath --path --windows " $M2_HOME " `
191
- [ -n " $JAVA_HOME " ] &&
192
- JAVA_HOME=` cygpath --path --windows " $JAVA_HOME " `
193
- [ -n " $CLASSPATH " ] &&
194
- CLASSPATH=` cygpath --path --windows " $CLASSPATH " `
195
- fi
196
-
197
165
# traverses directory structure from process work directory to filesystem root
198
166
# first directory with .mvn subdirectory is considered project base directory
199
167
find_maven_basedir () {
200
- local basedir=$( pwd)
201
- local wdir=$( pwd)
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 "
202
177
while [ " $wdir " != ' /' ] ; do
203
178
if [ -d " $wdir " /.mvn ] ; then
204
179
basedir=$wdir
205
180
break
206
181
fi
207
- wdir=$( cd " $wdir /.." ; pwd)
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
208
187
done
209
188
echo " ${basedir} "
210
189
}
@@ -216,30 +195,92 @@ concat_lines() {
216
195
fi
217
196
}
218
197
219
- export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- $(find_maven_basedir)}
220
- MAVEN_OPTS=" $( concat_lines " $MAVEN_PROJECTBASEDIR /.mvn/jvm.config" ) $MAVEN_OPTS "
221
-
222
- # Provide a "standardized" way to retrieve the CLI args that will
223
- # work with both Windows and non-Windows executions.
224
- MAVEN_CMD_LINE_ARGS=" $MAVEN_CONFIG $@ "
225
- export MAVEN_CMD_LINE_ARGS
198
+ BASE_DIR=` find_maven_basedir " $( pwd) " `
199
+ if [ -z " $BASE_DIR " ]; then
200
+ exit 1;
201
+ fi
226
202
227
- WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
203
+ # #########################################################################################
204
+ # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205
+ # This allows using the maven wrapper in projects that prohibit checking in binary data.
206
+ # #########################################################################################
207
+ if [ -r " $BASE_DIR /.mvn/wrapper/maven-wrapper.jar" ]; then
208
+ if [ " $MVNW_VERBOSE " = true ]; then
209
+ echo " Found .mvn/wrapper/maven-wrapper.jar"
210
+ fi
211
+ else
212
+ if [ " $MVNW_VERBOSE " = true ]; then
213
+ echo " Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214
+ fi
215
+ jarUrl=" https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216
+ while IFS=" =" read key value; do
217
+ case " $key " in (wrapperUrl) jarUrl=" $value " ; break ;;
218
+ esac
219
+ done < " $BASE_DIR /.mvn/wrapper/maven-wrapper.properties"
220
+ if [ " $MVNW_VERBOSE " = true ]; then
221
+ echo " Downloading from: $jarUrl "
222
+ fi
223
+ wrapperJarPath=" $BASE_DIR /.mvn/wrapper/maven-wrapper.jar"
224
+
225
+ if command -v wget > /dev/null; then
226
+ if [ " $MVNW_VERBOSE " = true ]; then
227
+ echo " Found wget ... using wget"
228
+ fi
229
+ wget " $jarUrl " -O " $wrapperJarPath "
230
+ elif command -v curl > /dev/null; then
231
+ if [ " $MVNW_VERBOSE " = true ]; then
232
+ echo " Found curl ... using curl"
233
+ fi
234
+ curl -o " $wrapperJarPath " " $jarUrl "
235
+ else
236
+ if [ " $MVNW_VERBOSE " = true ]; then
237
+ echo " Falling back to using Java to download"
238
+ fi
239
+ javaClass=" $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.java"
240
+ if [ -e " $javaClass " ]; then
241
+ if [ ! -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242
+ if [ " $MVNW_VERBOSE " = true ]; then
243
+ echo " - Compiling MavenWrapperDownloader.java ..."
244
+ fi
245
+ # Compiling the Java class
246
+ (" $JAVA_HOME /bin/javac" " $javaClass " )
247
+ fi
248
+ if [ -e " $BASE_DIR /.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249
+ # Running the downloader
250
+ if [ " $MVNW_VERBOSE " = true ]; then
251
+ echo " - Running MavenWrapperDownloader.java ..."
252
+ fi
253
+ (" $JAVA_HOME /bin/java" -cp .mvn/wrapper MavenWrapperDownloader " $MAVEN_PROJECTBASEDIR " )
254
+ fi
255
+ fi
256
+ fi
257
+ fi
258
+ # #########################################################################################
259
+ # End of extension
260
+ # #########################################################################################
228
261
229
- echo " Running version check"
230
- VERSION=$( sed ' \!<parent!,\!</parent!d' ` dirname $0 ` /pom.xml | grep ' <version' | head -1 | sed -e ' s/.*<version>//' -e ' s!</version>.*$!!' )
231
- echo " The found version is [${VERSION} ]"
262
+ export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:- " $BASE_DIR " }
263
+ if [ " $MVNW_VERBOSE " = true ]; then
264
+ echo $MAVEN_PROJECTBASEDIR
265
+ fi
266
+ MAVEN_OPTS=" $( concat_lines " $MAVEN_PROJECTBASEDIR /.mvn/jvm.config" ) $MAVEN_OPTS "
232
267
233
- if echo $VERSION | egrep -q ' M|RC' ; then
234
- echo Activating \" milestone\" profile for version=\" $VERSION \"
235
- echo $MAVEN_ARGS | grep -q milestone || MAVEN_ARGS=" $MAVEN_ARGS -Pmilestone"
236
- else
237
- echo Deactivating \" milestone\" profile for version=\" $VERSION \"
238
- echo $MAVEN_ARGS | grep -q milestone && MAVEN_ARGS=$( echo $MAVEN_ARGS | sed -e ' s/-Pmilestone//' )
268
+ # For Cygwin, switch paths to Windows format before running java
269
+ if $cygwin ; then
270
+ [ -n " $M2_HOME " ] &&
271
+ M2_HOME=` cygpath --path --windows " $M2_HOME " `
272
+ [ -n " $JAVA_HOME " ] &&
273
+ JAVA_HOME=` cygpath --path --windows " $JAVA_HOME " `
274
+ [ -n " $CLASSPATH " ] &&
275
+ CLASSPATH=` cygpath --path --windows " $CLASSPATH " `
276
+ [ -n " $MAVEN_PROJECTBASEDIR " ] &&
277
+ MAVEN_PROJECTBASEDIR=` cygpath --path --windows " $MAVEN_PROJECTBASEDIR " `
239
278
fi
240
279
280
+ WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281
+
241
282
exec " $JAVACMD " \
242
283
$MAVEN_OPTS \
243
284
-classpath " $MAVEN_PROJECTBASEDIR /.mvn/wrapper/maven-wrapper.jar" \
244
285
" -Dmaven.home=${M2_HOME} " " -Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR} " \
245
- ${WRAPPER_LAUNCHER} ${MAVEN_ARGS} " $@ "
286
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG " $@ "
0 commit comments