19
19
# ----------------------------------------------------------------------------
20
20
21
21
# ----------------------------------------------------------------------------
22
- # Apache Maven Wrapper startup batch script, version 3.3.2
22
+ # Apache Maven Wrapper startup batch script, version 3.3.4
23
23
#
24
24
# Optional ENV vars
25
25
# -----------------
@@ -105,14 +105,17 @@ trim() {
105
105
printf " %s" " ${1} " | tr -d ' [:space:]'
106
106
}
107
107
108
+ scriptDir=" $( dirname " $0 " ) "
109
+ scriptName=" $( basename " $0 " ) "
110
+
108
111
# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
109
112
while IFS=" =" read -r key value; do
110
113
case " ${key-} " in
111
114
distributionUrl) distributionUrl=$( trim " ${value-} " ) ;;
112
115
distributionSha256Sum) distributionSha256Sum=$( trim " ${value-} " ) ;;
113
116
esac
114
- done < " ${0 %/* } /.mvn/wrapper/maven-wrapper.properties"
115
- [ -n " ${distributionUrl-} " ] || die " cannot read distributionUrl property in ${0 %/* } /.mvn/wrapper/maven-wrapper.properties"
117
+ done < " $scriptDir /.mvn/wrapper/maven-wrapper.properties"
118
+ [ -n " ${distributionUrl-} " ] || die " cannot read distributionUrl property in $scriptDir /.mvn/wrapper/maven-wrapper.properties"
116
119
117
120
case " ${distributionUrl##*/ } " in
118
121
maven-mvnd-* bin.* )
@@ -130,7 +133,7 @@ maven-mvnd-*bin.*)
130
133
distributionUrl=" ${distributionUrl% -bin.* } -$distributionPlatform .zip"
131
134
;;
132
135
maven-mvnd-* ) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
133
- * ) MVN_CMD=" mvn${0 ##*/ mvnw} " _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
136
+ * ) MVN_CMD=" mvn${scriptName # mvnw} " _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
134
137
esac
135
138
136
139
# apply MVNW_REPOURL and calculate MAVEN_HOME
@@ -227,7 +230,7 @@ if [ -n "${distributionSha256Sum-}" ]; then
227
230
echo " Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
228
231
exit 1
229
232
elif command -v sha256sum > /dev/null; then
230
- if echo " $distributionSha256Sum $TMP_DOWNLOAD_DIR /$distributionUrlName " | sha256sum -c > /dev/null 2>&1 ; then
233
+ if echo " $distributionSha256Sum $TMP_DOWNLOAD_DIR /$distributionUrlName " | sha256sum -c - > /dev/null 2>&1 ; then
231
234
distributionSha256Result=true
232
235
fi
233
236
elif command -v shasum > /dev/null; then
@@ -252,8 +255,41 @@ if command -v unzip >/dev/null; then
252
255
else
253
256
tar xzf${__MVNW_QUIET_TAR: +" $__MVNW_QUIET_TAR " } " $TMP_DOWNLOAD_DIR /$distributionUrlName " -C " $TMP_DOWNLOAD_DIR " || die " failed to untar"
254
257
fi
255
- printf %s\\ n " $distributionUrl " > " $TMP_DOWNLOAD_DIR /$distributionUrlNameMain /mvnw.url"
256
- mv -- " $TMP_DOWNLOAD_DIR /$distributionUrlNameMain " " $MAVEN_HOME " || [ -d " $MAVEN_HOME " ] || die " fail to move MAVEN_HOME"
258
+
259
+ # Find the actual extracted directory name (handles snapshots where filename != directory name)
260
+ actualDistributionDir=" "
261
+
262
+ # First try the expected directory name (for regular distributions)
263
+ if [ -d " $TMP_DOWNLOAD_DIR /$distributionUrlNameMain " ]; then
264
+ if [ -f " $TMP_DOWNLOAD_DIR /$distributionUrlNameMain /bin/$MVN_CMD " ]; then
265
+ actualDistributionDir=" $distributionUrlNameMain "
266
+ fi
267
+ fi
268
+
269
+ # If not found, search for any directory with the Maven executable (for snapshots)
270
+ if [ -z " $actualDistributionDir " ]; then
271
+ # enable globbing to iterate over items
272
+ set +f
273
+ for dir in " $TMP_DOWNLOAD_DIR " /* ; do
274
+ if [ -d " $dir " ]; then
275
+ if [ -f " $dir /bin/$MVN_CMD " ]; then
276
+ actualDistributionDir=" $( basename " $dir " ) "
277
+ break
278
+ fi
279
+ fi
280
+ done
281
+ set -f
282
+ fi
283
+
284
+ if [ -z " $actualDistributionDir " ]; then
285
+ verbose " Contents of $TMP_DOWNLOAD_DIR :"
286
+ verbose " $( ls -la " $TMP_DOWNLOAD_DIR " ) "
287
+ die " Could not find Maven distribution directory in extracted archive"
288
+ fi
289
+
290
+ verbose " Found extracted Maven distribution directory: $actualDistributionDir "
291
+ printf %s\\ n " $distributionUrl " > " $TMP_DOWNLOAD_DIR /$actualDistributionDir /mvnw.url"
292
+ mv -- " $TMP_DOWNLOAD_DIR /$actualDistributionDir " " $MAVEN_HOME " || [ -d " $MAVEN_HOME " ] || die " fail to move MAVEN_HOME"
257
293
258
294
clean || :
259
295
exec_maven " $@ "
0 commit comments