Skip to content

Commit 6d0beb2

Browse files
committed
Revert part of mvn wrapper change
1 parent 0687a3c commit 6d0beb2

File tree

1 file changed

+122
-166
lines changed

1 file changed

+122
-166
lines changed

mvnw.cmd

Lines changed: 122 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<# : batch portion
21
@REM ----------------------------------------------------------------------------
32
@REM Licensed to the Apache Software Foundation (ASF) under one
43
@REM or more contributor license agreements. See the NOTICE file
@@ -8,7 +7,7 @@
87
@REM "License"); you may not use this file except in compliance
98
@REM with the License. You may obtain a copy of the License at
109
@REM
11-
@REM http://www.apache.org/licenses/LICENSE-2.0
10+
@REM https://www.apache.org/licenses/LICENSE-2.0
1211
@REM
1312
@REM Unless required by applicable law or agreed to in writing,
1413
@REM software distributed under the License is distributed on an
@@ -19,171 +18,128 @@
1918
@REM ----------------------------------------------------------------------------
2019

2120
@REM ----------------------------------------------------------------------------
22-
@REM Apache Maven Wrapper startup batch script, version 3.3.3
21+
@REM Maven2 Start Up Batch script
22+
@REM
23+
@REM Required ENV vars:
24+
@REM JAVA_HOME - location of a JDK home dir
2325
@REM
2426
@REM Optional ENV vars
25-
@REM MVNW_REPOURL - repo url base for downloading maven distribution
26-
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
27-
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
27+
@REM M2_HOME - location of maven2's installed home dir
28+
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29+
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30+
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31+
@REM e.g. to debug Maven itself, use
32+
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33+
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
2834
@REM ----------------------------------------------------------------------------
2935

30-
@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
31-
@SET __MVNW_CMD__=
32-
@SET __MVNW_ERROR__=
33-
@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
34-
@SET PSModulePath=
35-
@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
36-
IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
37-
)
38-
@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
39-
@SET __MVNW_PSMODULEP_SAVE=
40-
@SET __MVNW_ARG0_NAME__=
41-
@SET MVNW_USERNAME=
42-
@SET MVNW_PASSWORD=
43-
@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*)
44-
@echo Cannot start maven from wrapper >&2 && exit /b 1
45-
@GOTO :EOF
46-
: end batch / begin powershell #>
47-
48-
$ErrorActionPreference = "Stop"
49-
if ($env:MVNW_VERBOSE -eq "true") {
50-
$VerbosePreference = "Continue"
51-
}
52-
53-
# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
54-
$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
55-
if (!$distributionUrl) {
56-
Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
57-
}
58-
59-
switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
60-
"maven-mvnd-*" {
61-
$USE_MVND = $true
62-
$distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
63-
$MVN_CMD = "mvnd.cmd"
64-
break
65-
}
66-
default {
67-
$USE_MVND = $false
68-
$MVN_CMD = $script -replace '^mvnw','mvn'
69-
break
70-
}
71-
}
72-
73-
# apply MVNW_REPOURL and calculate MAVEN_HOME
74-
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
75-
if ($env:MVNW_REPOURL) {
76-
$MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" }
77-
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')"
78-
}
79-
$distributionUrlName = $distributionUrl -replace '^.*/',''
80-
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
81-
82-
$MAVEN_M2_PATH = "$HOME/.m2"
83-
if ($env:MAVEN_USER_HOME) {
84-
$MAVEN_M2_PATH = "$env:MAVEN_USER_HOME"
85-
}
86-
87-
if (-not (Test-Path -Path $MAVEN_M2_PATH)) {
88-
New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null
89-
}
90-
91-
$MAVEN_WRAPPER_DISTS = $null
92-
if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) {
93-
$MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists"
94-
} else {
95-
$MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists"
96-
}
97-
98-
$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain"
99-
$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
100-
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
101-
102-
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
103-
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
104-
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
105-
exit $?
106-
}
107-
108-
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
109-
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
110-
}
111-
112-
# prepare tmp dir
113-
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
114-
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
115-
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
116-
trap {
117-
if ($TMP_DOWNLOAD_DIR.Exists) {
118-
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
119-
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
120-
}
121-
}
122-
123-
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
124-
125-
# Download and Install Apache Maven
126-
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
127-
Write-Verbose "Downloading from: $distributionUrl"
128-
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
129-
130-
$webclient = New-Object System.Net.WebClient
131-
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
132-
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
133-
}
134-
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
135-
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
136-
137-
# If specified, validate the SHA-256 sum of the Maven distribution zip file
138-
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
139-
if ($distributionSha256Sum) {
140-
if ($USE_MVND) {
141-
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
142-
}
143-
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
144-
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
145-
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
146-
}
147-
}
148-
149-
# unzip and move
150-
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
151-
152-
# Find the actual extracted directory name (handles snapshots where filename != directory name)
153-
$actualDistributionDir = ""
154-
155-
# First try the expected directory name (for regular distributions)
156-
$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain"
157-
$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD"
158-
if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) {
159-
$actualDistributionDir = $distributionUrlNameMain
160-
}
161-
162-
# If not found, search for any directory with the Maven executable (for snapshots)
163-
if (!$actualDistributionDir) {
164-
Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object {
165-
$testPath = Join-Path $_.FullName "bin/$MVN_CMD"
166-
if (Test-Path -Path $testPath -PathType Leaf) {
167-
$actualDistributionDir = $_.Name
168-
}
169-
}
170-
}
171-
172-
if (!$actualDistributionDir) {
173-
Write-Error "Could not find Maven distribution directory in extracted archive"
174-
}
175-
176-
Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir"
177-
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null
178-
try {
179-
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
180-
} catch {
181-
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
182-
Write-Error "fail to move MAVEN_HOME"
183-
}
184-
} finally {
185-
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
186-
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
187-
}
188-
189-
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
36+
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37+
@echo off
38+
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
39+
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
40+
41+
@REM set %HOME% to equivalent of $HOME
42+
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
43+
44+
@REM Execute a user defined script before this one
45+
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
46+
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
47+
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
48+
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
49+
:skipRcPre
50+
51+
@setlocal
52+
53+
set ERROR_CODE=0
54+
55+
@REM To isolate internal variables from possible post scripts, we use another setlocal
56+
@setlocal
57+
58+
@REM ==== START VALIDATION ====
59+
if not "%JAVA_HOME%" == "" goto OkJHome
60+
61+
echo.
62+
echo Error: JAVA_HOME not found in your environment. >&2
63+
echo Please set the JAVA_HOME variable in your environment to match the >&2
64+
echo location of your Java installation. >&2
65+
echo.
66+
goto error
67+
68+
:OkJHome
69+
if exist "%JAVA_HOME%\bin\java.exe" goto init
70+
71+
echo.
72+
echo Error: JAVA_HOME is set to an invalid directory. >&2
73+
echo JAVA_HOME = "%JAVA_HOME%" >&2
74+
echo Please set the JAVA_HOME variable in your environment to match the >&2
75+
echo location of your Java installation. >&2
76+
echo.
77+
goto error
78+
79+
@REM ==== END VALIDATION ====
80+
81+
:init
82+
83+
set MAVEN_CMD_LINE_ARGS=%*
84+
85+
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86+
@REM Fallback to current working directory if not found.
87+
88+
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89+
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90+
91+
set EXEC_DIR=%CD%
92+
set WDIR=%EXEC_DIR%
93+
:findBaseDir
94+
IF EXIST "%WDIR%"\.mvn goto baseDirFound
95+
cd ..
96+
IF "%WDIR%"=="%CD%" goto baseDirNotFound
97+
set WDIR=%CD%
98+
goto findBaseDir
99+
100+
:baseDirFound
101+
set MAVEN_PROJECTBASEDIR=%WDIR%
102+
cd "%EXEC_DIR%"
103+
goto endDetectBaseDir
104+
105+
:baseDirNotFound
106+
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107+
cd "%EXEC_DIR%"
108+
109+
:endDetectBaseDir
110+
111+
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112+
113+
@setlocal EnableExtensions EnableDelayedExpansion
114+
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115+
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116+
117+
:endReadAdditionalConfig
118+
119+
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120+
121+
set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
122+
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
123+
124+
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
125+
if ERRORLEVEL 1 goto error
126+
goto end
127+
128+
:error
129+
set ERROR_CODE=1
130+
131+
:end
132+
@endlocal & set ERROR_CODE=%ERROR_CODE%
133+
134+
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
135+
@REM check for post script, once with legacy .bat ending and once with .cmd ending
136+
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
137+
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
138+
:skipRcPost
139+
140+
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
141+
if "%MAVEN_BATCH_PAUSE%" == "on" pause
142+
143+
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
144+
145+
exit /B %ERROR_CODE%

0 commit comments

Comments
 (0)