1919# ----------------------------------------------------------------------------
2020
2121# ----------------------------------------------------------------------------
22- # Apache Maven Wrapper startup batch script, version 3.3.2
22+ # Apache Maven Wrapper startup batch script, version 3.3.3
2323#
2424# Optional ENV vars
2525# -----------------
@@ -105,14 +105,17 @@ trim() {
105105 printf " %s" " ${1} " | tr -d ' [:space:]'
106106}
107107
108+ scriptDir=" $( dirname " $0 " ) "
109+ scriptName=" $( basename " $0 " ) "
110+
108111# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
109112while IFS=" =" read -r key value; do
110113 case " ${key-} " in
111114 distributionUrl) distributionUrl=$( trim " ${value-} " ) ;;
112115 distributionSha256Sum) distributionSha256Sum=$( trim " ${value-} " ) ;;
113116 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"
116119
117120case " ${distributionUrl##*/ } " in
118121maven-mvnd-* bin.* )
@@ -130,7 +133,7 @@ maven-mvnd-*bin.*)
130133 distributionUrl=" ${distributionUrl% -bin.* } -$distributionPlatform .zip"
131134 ;;
132135maven-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/ ;;
134137esac
135138
136139# apply MVNW_REPOURL and calculate MAVEN_HOME
@@ -227,7 +230,7 @@ if [ -n "${distributionSha256Sum-}" ]; then
227230 echo " Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
228231 exit 1
229232 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
231234 distributionSha256Result=true
232235 fi
233236 elif command -v shasum > /dev/null; then
@@ -252,8 +255,41 @@ if command -v unzip >/dev/null; then
252255else
253256 tar xzf${__MVNW_QUIET_TAR: +" $__MVNW_QUIET_TAR " } " $TMP_DOWNLOAD_DIR /$distributionUrlName " -C " $TMP_DOWNLOAD_DIR " || die " failed to untar"
254257fi
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"
257293
258294clean || :
259295exec_maven " $@ "
0 commit comments