Skip to content

Commit dfa3918

Browse files
committed
Add support for MAVEN_PROJECTBASEDIR substitution (backport of MNG-8598)
1 parent d5c1764 commit dfa3918

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

apache-maven/src/bin/mvn

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,10 +172,14 @@ find_file_argument_basedir() {
172172
)
173173
}
174174

175-
# concatenates all lines of a file
175+
# concatenates all lines of a file and replaces variables
176176
concat_lines() {
177177
if [ -f "$1" ]; then
178-
echo "`tr -s '\r\n' ' ' < "$1"`"
178+
# First transform line endings to spaces
179+
content=$(tr -s '\r\n' ' ' < "$1")
180+
# Handle both ${var} and $var formats, only substitute MAVEN_PROJECTBASEDIR
181+
echo "$content" | sed -e "s|\${MAVEN_PROJECTBASEDIR}|$MAVEN_PROJECTBASEDIR|g" \
182+
-e "s|\$MAVEN_PROJECTBASEDIR|$MAVEN_PROJECTBASEDIR|g"
179183
fi
180184
}
181185

apache-maven/src/bin/mvn.cmd

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,28 @@ cd /d "%EXEC_DIR%"
161161

162162
:endDetectBaseDir
163163

164-
set "jvmConfig=\.mvn\jvm.config"
165-
if not exist "%MAVEN_PROJECTBASEDIR%%jvmConfig%" goto endReadAdditionalConfig
164+
if not exist "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadJvmConfig
166165

167166
@setlocal EnableExtensions EnableDelayedExpansion
168-
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
169-
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
167+
set JVM_CONFIG_MAVEN_OPTS=
168+
for /F "usebackq tokens=* delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do (
169+
set "line=%%a"
170+
171+
rem Replace MAVEN_PROJECTBASEDIR placeholders
172+
set "line=!line:${MAVEN_PROJECTBASEDIR}=%MAVEN_PROJECTBASEDIR%!"
173+
set "line=!line:$MAVEN_PROJECTBASEDIR=%MAVEN_PROJECTBASEDIR%!"
174+
175+
if not "!line!"=="" (
176+
if "!JVM_CONFIG_MAVEN_OPTS!"=="" (
177+
set "JVM_CONFIG_MAVEN_OPTS=!line!"
178+
) else (
179+
set "JVM_CONFIG_MAVEN_OPTS=!JVM_CONFIG_MAVEN_OPTS! !line!"
180+
)
181+
)
182+
)
183+
@endlocal & set JVM_CONFIG_MAVEN_OPTS=%JVM_CONFIG_MAVEN_OPTS%
170184

171-
:endReadAdditionalConfig
185+
:endReadJvmConfig
172186

173187
@REM do not let MAVEN_PROJECTBASEDIR end with a single backslash which would escape the double quote. This happens when .mvn at drive root.
174188
if "_%MAVEN_PROJECTBASEDIR:~-1%"=="_\" set "MAVEN_PROJECTBASEDIR=%MAVEN_PROJECTBASEDIR%\"
@@ -183,7 +197,7 @@ set "INTERNAL_MAVEN_OPTS=--enable-native-access=ALL-UNNAMED %INTERNAL_MAVEN_OPTS
183197
:skipEnableNativeAccess
184198

185199
"%JAVACMD%" ^
186-
%JVM_CONFIG_MAVEN_PROPS% ^
200+
%JVM_CONFIG_MAVEN_OPTS% ^
187201
%INTERNAL_MAVEN_OPTS% ^
188202
%MAVEN_OPTS% ^
189203
%MAVEN_DEBUG_OPTS% ^

0 commit comments

Comments
 (0)