[2.x] fix: Parse sbtVersion robustly in sbt.bat (sbt#8717)

**Problem**
Windows batch parsing for `sbtVersion` used a fragile token extraction that could capture non-version tokens from noisy output.

**Solution**
Updated `:set_sbt_version` to select and validate version-shaped tokens and fallback to `build_props_sbt_version` when parsing is noisy.
This commit is contained in:
it-education-md 2026-02-13 05:43:59 -05:00
parent 3f95842fd8
commit 28fbfbeff0
1 changed files with 10 additions and 2 deletions

View File

@ -1122,8 +1122,16 @@ echo.
exit /B 1
:set_sbt_version
rem set project sbtVersion
for /F "usebackq tokens=2" %%G in (`CALL "!_JAVACMD!" -jar "!sbt_jar!" "sbtVersion" 2^>^&1`) do set "sbt_version=%%G"
set "sbt_version="
for /F "usebackq tokens=1,2 delims= " %%a in (`CALL "!_JAVACMD!" -jar "!sbt_jar!" "sbtVersion" 2^>^&1`) do (
if "%%a" == "[info]" (
set "_version_candidate=%%b"
) else (
set "_version_candidate=%%a"
)
echo !_version_candidate!| findstr /R "^[0-9][0-9.]*[-+0-9A-Za-z._]*$" >nul && set "sbt_version=!_version_candidate!"
)
if not defined sbt_version if defined build_props_sbt_version set "sbt_version=!build_props_sbt_version!"
exit /B 0
:error