windows上打包springboot项目脚本
@echo off
chcp 65001 >nul
setlocal EnableDelayedExpansion

:: 设置路径
set "projectDir=D:\Code\XXXX"
set "yamlPath=XXXX\src\main\resources\application.yaml"
set "yamlFile=%projectDir%\%yamlPath%"

:: 关键:将备份文件放在根目录,防止被 Maven 扫描打包
set "bakFile=%projectDir%\application.yaml.bak"
set "tmpFile=%projectDir%\application.yaml.tmp"

echo ==============================
echo   请选择运行环境:
echo   1. prod
echo   2. test
echo   3. local
echo   4. prod-test
echo ==============================

set /p choice=请输入选项(1-4): 

if "%choice%"=="1" set "profile=prod"
if "%choice%"=="2" set "profile=test"
if "%choice%"=="3" set "profile=local"
if "%choice%"=="4" set "profile=prod-test"

if not defined profile (
    echo 无效输入
    pause
    exit /b 1
)

echo 当前环境: %profile%

:: 1. 备份到根目录
copy /y "%yamlFile%" "%bakFile%" >nul

echo 开始修改 YAML...

:: 2. 修改 active 行
(for /f "tokens=1* delims=:" %%a in ('findstr /n /r "^" "%bakFile%"') do (
    set "line=%%b"
    if defined line (
        set "trimmed=!line!"
        :: 去掉行首空格进行前缀匹配
        for /f "tokens=*" %%g in ("!line!") do set "trimmed=%%g"

        :: 检查是否以 active: 开头
        if "!trimmed:~0,7!"=="active:" (
            :: 这里设置缩进:4个空格代表 2 个 Tab 的视觉位置
            echo     active: %profile%
        ) else (
            echo(!line!
        )
    ) else (
        echo.
    )
)) > "%tmpFile%"

:: 覆盖原文件
move /y "%tmpFile%" "%yamlFile%" >nul

echo 开始打包...
cd /d "%projectDir%"
:: 使用 call 确保 mvn 执行完后能回到本脚本继续执行恢复逻辑
call mvn clean package -DskipTests

:: 3. 恢复配置文件并删除备份
echo 正在恢复配置文件...
move /y "%bakFile%" "%yamlFile%" >nul

echo ==============================
echo ✔ 打包完成(.bak文件已自动清理)
echo ==============================

pause
暂无评论

发送评论 编辑评论


				
上一篇
下一篇