2020-08-22 22:14:04 -04:00
@ 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
2021-01-04 04:56:38 +01:00
@ REM http://www.apache.org/licenses/LICENSE-2.0
2020-08-22 22:14:04 -04:00
@ 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 ----------------------------------------------------------------------------
2023-06-01 00:24:20 +08:00
@ REM Apache Maven Wrapper startup batch script, version 3.2.0
2020-08-22 22:14:04 -04:00
@ 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
2021-01-04 04:56:38 +01:00
@ REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
2020-08-22 22:14:04 -04:00
@ 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
2021-01-04 04:56:38 +01:00
@ REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
2020-08-22 22:14:04 -04:00
@ 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
2022-01-24 01:07:43 -08:00
if exist " %USERPROFILE% \mavenrc_pre.bat " call " %USERPROFILE% \mavenrc_pre.bat " %*
if exist " %USERPROFILE% \mavenrc_pre.cmd " call " %USERPROFILE% \mavenrc_pre.cmd " %*
2020-08-22 22:14:04 -04:00
: 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
2023-06-01 00:24:20 +08:00
set WRAPPER_URL = " https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar "
2021-01-04 04:56:38 +01:00
2022-01-24 01:07:43 -08:00
FOR /F " usebackq tokens=1,2 delims== " %% A IN ( " %MAVEN_PROJECTBASEDIR% \.mvn\wrapper\maven-wrapper.properties " ) DO (
2023-06-01 00:24:20 +08:00
IF " %% A " == " wrapperUrl " SET WRAPPER_URL = %% B
2021-01-04 04:56:38 +01:00
)
@ 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% " == " " (
2023-06-01 00:24:20 +08:00
SET WRAPPER_URL = " %MVNW_REPOURL% /org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar "
2021-01-04 04:56:38 +01:00
)
if " %MVNW_VERBOSE% " == " true " (
echo Couldn't find %WRAPPER_JAR% , downloading it ...
2023-06-01 00:24:20 +08:00
echo Downloading from: %WRAPPER_URL%
2021-01-04 04:56:38 +01:00
)
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% '); " ^
" } " ^
2023-06-01 00:24:20 +08:00
" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile(' %WRAPPER_URL% ', ' %WRAPPER_JAR% ') " ^
2021-01-04 04:56:38 +01:00
" } "
if " %MVNW_VERBOSE% " == " true " (
echo Finished downloading %WRAPPER_JAR%
)
)
@ REM End of extension
2023-06-01 00:24:20 +08:00
@ 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
)
2021-01-04 04:56:38 +01:00
@ 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 = %*
2022-01-24 01:07:43 -08:00
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
" -Dmaven.multiModuleProjectDirectory= %MAVEN_PROJECTBASEDIR% " ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
2020-08-22 22:14:04 -04:00
if ERRORLEVEL 1 goto error
goto end
: error
set ERROR_CODE = 1
: end
@ endlocal & set ERROR_CODE = %ERROR_CODE%
2022-01-24 01:07:43 -08:00
if not " %MAVEN_SKIP_RC% " == " " goto skipRcPost
2020-08-22 22:14:04 -04:00
@ REM check for post script, once with legacy .bat ending and once with .cmd ending
2022-01-24 01:07:43 -08:00
if exist " %USERPROFILE% \mavenrc_post.bat " call " %USERPROFILE% \mavenrc_post.bat "
if exist " %USERPROFILE% \mavenrc_post.cmd " call " %USERPROFILE% \mavenrc_post.cmd "
2020-08-22 22:14:04 -04:00
: skipRcPost
@ REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
2022-01-24 01:07:43 -08:00
if " %MAVEN_BATCH_PAUSE% " == " on " pause
2020-08-22 22:14:04 -04:00
2022-01-24 01:07:43 -08:00
if " %MAVEN_TERMINATE_CMD% " == " on " exit %ERROR_CODE%
2020-08-22 22:14:04 -04:00
2022-01-24 01:07:43 -08:00
cmd /C exit /B %ERROR_CODE%