使用window批处理实现一键拉取最新svn代码进行maven打包部署

使用window批处理实现一键拉取最新svn代码进行maven打包部署

使用场景:测试环境需要频繁部署的测试应用。
运行环境:

  1. Java 配置环境变量
  2. svn
  3. maven 需要配置环境变量

脚本思路:

  1. 拉取最新代码
  2. maven打包
  3. 进行备份
  4. 停止正在运行程序
  5. 将打包文件拷贝到运行目录
  6. 运行最新软件包
@echo off  
setlocal enabledelayedexpansion  
  
:: svn的url(必须修改)
set "SVN_REPO=http://gitee.com/"  
:: svn的用户名(必须修改)
set "USERNAME=yhm"
:: svn的密码(必须修改)
set "PASSWORD=mima"
::打包后的jar包名称(必须修改)
set "APP_JAR=system-start.jar"  
::打包文件路径(必须修改)
set "SOURCE_FILE=%WORKSPACE%\module-system\target\%APP_JAR%"  
::服务端口号(必须修改)
set port=8080

::当前脚本路径
set BATPATH=%~dp0
::源码保存的路径
set "WORKSPACE=%BATPATH%aa-boot"  
::文件夹备份目录
set "BACKUP_DIR=%BATPATH%backups"  

:: 获取当前日期和时间,并格式化为 yyyyMMddHHmm  
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "datetime=%%a"  
set "year=!datetime:~0,4!"  
set "month=!datetime:~4,2!"  
set "day=!datetime:~6,2!"  
set "hour=!datetime:~8,2!"  
set "minute=!datetime:~10,2!"  

:: 创建备份文件夹名称,精确到分钟  
set "BACKUP_NAME=%BACKUP_DIR%\%year%%month%%day%_%hour%%minute%"  


:: 1、更新代码
svn checkout "%SVN_REPO%" "%WORKSPACE%" --username %USERNAME% --password "%PASSWORD%"
    echo SVN checkout failed.  
    pause  
)  
::2、 maven打包
:: cd "%WORKSPACE%"
:: call mvn clean package -Dmaven.test.skip=true

:: 3、备份运行中的程序

if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"  
if not exist "%BACKUP_NAME%" mkdir "%BACKUP_NAME%"  
if exist "%SOURCE_FILE%" (
    echo 开始备份文件......  
	xcopy /Y "%BATPATH%\%APP_JAR%" "%BACKUP_NAME%" 
    if %errorlevel% neq 0 (
		echo 备份失败
	) else (
		echo 备份成功
	)	
) else (
	echo 无需备份.
)  



:: 4、停止正在运行的程序
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
 echo 停止程序 %%m 
 taskkill /pid %%m -t -f
)

:: 5、复制打包文件至工作目录
echo 将新打包的 %APP_JAR% 程序,移动至工作目录. 
if exist "%SOURCE_FILE%" (  
    xcopy /Y "%SOURCE_FILE%" "%BATPATH%"
    if %errorlevel% neq 0 (  
        echo 复制打包文件至工作目录失败
		pause 
    ) else (  
        echo 复制打包文件至工作目录成功    
    )  
) else (  
    echo 新打包文件未找到,请确定.  
    pause  
)  
  
:: 6、运行
cd %BATPATH%
java -jar "%APP_JAR%"  
pause
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值