使用 sbt 构建时检查错误级别
Checking error level while building with sbt
我想编写一个 windows .cmd
脚本,将所有项目模块发布到本地存储库中。但是我想在可能发生的第一个错误停止。我正在检查 %ERRORLEVEL%
但它始终等于 0,即使 sbt publish-local
命令因某些错误而失败。
@echo on
@setlocal enabledelayedexpansions
set modules=^
sbt-common^
common^
for %%A in (%modules%) do (
echo ======================================
echo = PUBLISHING %%A =
echo ======================================
cd %%A
call sbt publish-local
echo %ERRORLEVEL% :: <- Always = 0
if ERRORLEVEL 1 goto error
)
:error
@endlocal
exit /B 1
任何帮助将不胜感激。
试试这个:
@echo on
@setlocal EnableDelayedExpansion
set modules=^
sbt-common^
common^
for %%A in (%modules%) do (
echo ======================================
echo = PUBLISHING %%A =
echo ======================================
cd %%A
call sbt publish-local
echo !ERRORLEVEL!
if !ERRORLEVEL! geq 1 goto error
)
:error
@endlocal
exit /B 1
注意EnableDelayedExpansion
后面不能有s,批处理括号内要用!
代替%
我想编写一个 windows .cmd
脚本,将所有项目模块发布到本地存储库中。但是我想在可能发生的第一个错误停止。我正在检查 %ERRORLEVEL%
但它始终等于 0,即使 sbt publish-local
命令因某些错误而失败。
@echo on
@setlocal enabledelayedexpansions
set modules=^
sbt-common^
common^
for %%A in (%modules%) do (
echo ======================================
echo = PUBLISHING %%A =
echo ======================================
cd %%A
call sbt publish-local
echo %ERRORLEVEL% :: <- Always = 0
if ERRORLEVEL 1 goto error
)
:error
@endlocal
exit /B 1
任何帮助将不胜感激。
试试这个:
@echo on
@setlocal EnableDelayedExpansion
set modules=^
sbt-common^
common^
for %%A in (%modules%) do (
echo ======================================
echo = PUBLISHING %%A =
echo ======================================
cd %%A
call sbt publish-local
echo !ERRORLEVEL!
if !ERRORLEVEL! geq 1 goto error
)
:error
@endlocal
exit /B 1
注意EnableDelayedExpansion
后面不能有s,批处理括号内要用!
代替%