From 7779b0f80007bc69b0eb229ea074a9f2179ede01 Mon Sep 17 00:00:00 2001 From: spring-builds Date: Tue, 18 Aug 2026 14:32:49 +0000 Subject: [PATCH] Update Maven wrapper to 3.9.16 Signed-off-by: spring-builds --- .mvn/wrapper/maven-wrapper.jar | Bin 62547 -> 63093 bytes .mvn/wrapper/maven-wrapper.properties | 22 +- mvnw | 262 ++++++++-------- mvnw.cmd | 411 +++++++++++++------------- 4 files changed, 356 insertions(+), 339 deletions(-) diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index cb28b0e37c7d206feb564310fdeec0927af4123a..eebc3c18b4e0bce4a2a9e66be24c4a410f17a1fa 100644 GIT binary patch delta 19846 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 delta 19347 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 + exit 1 + ) + pwd + )" fi if [ -z "$JAVA_HOME" ]; then javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then + if [ -n "$javaExecutable" ] && ! [ "$(expr "$javaExecutable" : '\([^ ]*\)')" = "no" ]; then # readlink(1) is not available as standard on Solaris 10. readLink=$(which readlink) if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" + if $darwin; then + javaHome="$(dirname "$javaExecutable")" + javaExecutable="$(cd "$javaHome" && pwd -P)/javac" else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" + javaExecutable="$(readlink -f "$javaExecutable")" fi - javaHome="$(dirname "\"$javaExecutable\"")" + javaHome="$(dirname "$javaExecutable")" javaHome=$(expr "$javaHome" : '\(.*\)/bin') JAVA_HOME="$javaHome" export JAVA_HOME @@ -109,52 +118,60 @@ if [ -z "$JAVA_HOME" ]; then fi fi -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +if [ -z "$JAVACMD" ]; then + if [ -n "$JAVA_HOME" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" + JAVACMD="$( + \unset -f command 2>/dev/null + \command -v java + )" fi fi -if [ ! -x "$JAVACMD" ] ; then +if [ ! -x "$JAVACMD" ]; then echo "Error: JAVA_HOME is not defined correctly." >&2 echo " We cannot execute $JAVACMD" >&2 exit 1 fi -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." +if [ -z "$JAVA_HOME" ]; then + echo "Warning: JAVA_HOME environment variable is not set." >&2 fi # traverses directory structure from process work directory to filesystem root # first directory with .mvn subdirectory is considered project base directory find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" + if [ -z "$1" ]; then + echo "Path not specified to find_maven_basedir" >&2 return 1 fi basedir="$1" wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then + while [ "$wdir" != '/' ]; do + if [ -d "$wdir"/.mvn ]; then basedir=$wdir break fi # workaround for JBEAP-8937 (on Solaris 10/Sparc) if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) + wdir=$( + cd "$wdir/.." || exit 1 + pwd + ) fi # end of workaround done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" + printf '%s' "$( + cd "$basedir" || exit 1 + pwd + )" } # concatenates all lines of a file @@ -165,7 +182,7 @@ concat_lines() { # enabled. Otherwise, we may read lines that are delimited with # \r\n and produce $'-Xarg\r' rather than -Xarg due to word # splitting rules. - tr -s '\r\n' ' ' < "$1" + tr -s '\r\n' ' ' <"$1" fi } @@ -177,75 +194,85 @@ log() { BASE_DIR=$(find_maven_basedir "$(dirname "$0")") if [ -z "$BASE_DIR" ]; then - exit 1; + exit 1 fi -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +export MAVEN_PROJECTBASEDIR log "$MAVEN_PROJECTBASEDIR" +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + ########################################################################################## # Extension to allow automatically downloading the maven-wrapper.jar from Maven-central # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" + log "Found $wrapperJarPath" else - log "Couldn't find $wrapperJarPath, downloading it ..." + log "Couldn't find $wrapperJarPath, downloading it ..." - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar" + fi + while IFS="=" read -r key value; do + case "$key" in wrapperUrl) + wrapperUrl=$(trim "${value-}") + break + ;; + esac + done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget >/dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget ${QUIET:+"$QUIET"} "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + wget ${QUIET:+"$QUIET"} --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - + elif command -v curl >/dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl ${QUIET:+"$QUIET"} -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + else + curl ${QUIET:+"$QUIET"} --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" + fi + else + log "Falling back to using Java to download" + javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + log " - Compiling MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + log " - Running MavenWrapperDownloader.java ..." + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" + fi fi + fi fi ########################################################################################## # End of extension @@ -254,22 +281,25 @@ fi # If specified, validate the SHA-256 sum of the Maven wrapper jar file wrapperSha256Sum="" while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; + case "$key" in wrapperSha256Sum) + wrapperSha256Sum=$(trim "${value-}") + break + ;; esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" if [ -n "$wrapperSha256Sum" ]; then wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then + if command -v sha256sum >/dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c - >/dev/null 2>&1; then wrapperSha256Result=true fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then + elif command -v shasum >/dev/null; then + if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c >/dev/null 2>&1; then wrapperSha256Result=true fi else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." >&2 exit 1 fi if [ $wrapperSha256Result = false ]; then @@ -284,12 +314,12 @@ MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") + [ -n "$JAVA_HOME" ] \ + && JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") + [ -n "$CLASSPATH" ] \ + && CLASSPATH=$(cygpath --path --windows "$CLASSPATH") + [ -n "$MAVEN_PROJECTBASEDIR" ] \ + && MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") fi # Provide a "standardized" way to retrieve the CLI args that will diff --git a/mvnw.cmd b/mvnw.cmd index c4586b564..c453424c6 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -1,205 +1,206 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. >&2 +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. >&2 +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. >&2 +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. >&2 +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file +SET WRAPPER_SHA_256_SUM="" +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +) +IF NOT %WRAPPER_SHA_256_SUM%=="" ( + powershell -Command "&{"^ + "Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash;"^ + "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ + "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ + " Write-Error 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ + " Write-Error 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ + " Write-Error 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ + " exit 1;"^ + "}"^ + "}" + if ERRORLEVEL 1 goto error +) + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE%