75 lines
2.0 KiB
Batchfile
75 lines
2.0 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul
|
||
setlocal enabledelayedexpansion
|
||
|
||
:: ============================================
|
||
:: WorkUtils 生产打包脚本
|
||
:: 输出:target\dist\workutils-v{version}.zip(含 exe + jar + bat + config)
|
||
:: ============================================
|
||
|
||
::: 切换到项目根目录
|
||
cd /d "%~dp0.."
|
||
set PROJECT_DIR=%CD%
|
||
set TARGET=%PROJECT_DIR%\target
|
||
set DIST=%TARGET%\dist
|
||
set VERSION=
|
||
|
||
echo.
|
||
echo ========== WorkUtils 生产构建 ==========
|
||
echo.
|
||
|
||
:: 1. 杀掉可能占用 target 的进程
|
||
echo [1/4] 清理残留进程...
|
||
taskkill /f /im java.exe 2>nul
|
||
taskkill /f /im workutils.exe 2>nul
|
||
|
||
:: 2. Maven 打包
|
||
echo.
|
||
echo [2/4] Maven 编译打包...
|
||
call "%PROJECT_DIR%mvnw.cmd" clean package -DskipTests -q
|
||
if %errorlevel% neq 0 (
|
||
echo [ERROR] Maven 打包失败!
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
:: 3. 提取版本号
|
||
for /f "tokens=2 delims=>" %%i in ('findstr /c:"<version>" "%PROJECT_DIR%pom.xml" ^| findstr /v "xml" ^| findstr /n "1" ^| findstr "1:"') do (
|
||
for /f "tokens=1 delims=<" %%v in ("%%i") do set VERSION=%%v
|
||
)
|
||
if "%VERSION%"=="" set VERSION=0.0.1-SNAPSHOT
|
||
|
||
:: 4. 准备发布目录
|
||
echo.
|
||
echo [3/4] 组装发布包...
|
||
if exist "%DIST%" rd /s /q "%DIST%"
|
||
mkdir "%DIST%\workutils" 2>nul
|
||
|
||
copy /y "%TARGET%\workutils.exe" "%DIST%\workutils\" >nul
|
||
copy /y "%TARGET%\workutils-%VERSION%.jar" "%DIST%\workutils\" >nul
|
||
|
||
:: 生成发布用的启动脚本(JAR 在同一个目录下)
|
||
>"%DIST%\workutils\start.bat" (
|
||
echo @echo off
|
||
echo chcp 65001 ^>nul
|
||
echo title WorkUtils
|
||
echo java -jar "%%~dp0workutils-%VERSION%.jar" %%*
|
||
echo pause
|
||
)
|
||
|
||
:: 打包成 zip(保留 workutils 目录结构)
|
||
set ZIPNAME=workutils-v%VERSION%
|
||
powershell -Command "Compress-Archive -Path '%DIST%\workutils' -DestinationPath '%DIST%\%ZIPNAME%.zip' -Force"
|
||
|
||
:: 5. 完成
|
||
echo.
|
||
echo [4/4] 构建完成!
|
||
echo ============================================
|
||
echo 产物位置:
|
||
echo exe : target\workutils.exe
|
||
echo jar : target\workutils-%VERSION%.jar
|
||
echo zip : target\dist\%ZIPNAME%.zip
|
||
echo ============================================
|
||
echo.
|
||
pause
|