最近做了个jenkins配合gitlab自动部署java项目到windows server服务器。
jenkins和gitlab在linux下,好一顿折腾,先记录下脚本,其余后续补充吧。
把java项目作为服务
https://github.com/winsw/winsw
后端
@echo off
set ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
set ymd=%ymd: =0%
:: 定义常用文件夹路径
set jarname=jelly-web.jar
set sourcefolder=e:\jenkins\source\jelly-back\
set jarfolder=e:\jenkins\source\jelly-back\jelly-web\target\
set targetfolder=e:\app\jelly\backend\
set backupfolder=e:\jenkins\backup\
echo 接收到构建任务
e:
echo 进入代码文件夹
cd %sourcefolder%
echo 切换到 master 分支
git checkout master
echo 拉取最新代码
git pull
echo 打包代码
call mvn clean -u install -dmaven.test.skip=true
echo 打包完成 拷贝jar包
if exist %jarfolder%%jarname% (
rem 停止服务
net stop jelly-back
if exist %targetfolder%%jarname% (
echo 存在旧的构建【%targetfolder%%jarname%】,备份
::把原来发布的版本 备份
copy /y %targetfolder%%jarname% %backupfolder%\jelly-web-%ymd%.jar
echo 删除旧的构建【%targetfolder%%jarname%】
::把发布文件夹的jar包删除
del %targetfolder%%jarname%
)
::把当前gitlab文件夹下的jar包移动到发布文件夹
move %jarfolder%%jarname% %targetfolder%
cd %targetfolder%
net start jelly-back
echo 启动项目【%jarname%】成功
) else (
echo 文件【%jarfolder%%jarname%】不存在,打包失败,请检查!
)
前端
@echo off
set ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
set ymd=%ymd: =0%
:: 定义常用文件夹路径
set distname=dist
set sourcefolder=e:\jenkins\source\jelly-ui\
set distfolder=e:\jenkins\source\jelly-ui\dist\
set targetfolder=e:\app\jelly\fontend\
set backupfolder=e:\jenkins\backup\
echo 接收到构建任务
e:
echo 进入代码文件夹
cd %sourcefolder%
echo 切换到 master 分支
git checkout master
echo 拉取最新代码
git pull
echo 打包代码
call npm install
call npm run build:prod
echo 打包完成 拷贝打包后文件
if exist %sourcefolder% (
if exist %targetfolder%%distname%\ (
echo 存在旧的构建【%targetfolder%%distname%】,备份
::把原来发布的版本 备份
xcopy %targetfolder%%distname% %backupfolder%%distname%-%ymd%\ /q /e /r /s /y
)
::把当前文件夹下的dist移动到发布文件夹
echo 把当前文件夹下的dist移动到发布文件夹
xcopy %distfolder% %targetfolder%%distname%\ /q /e /r /s /y
) else (
echo 文件【%sourcefolder%】不存在,打包失败,请检查!
)到此这篇关于批处理bat脚本获取打包发布问题的文章就介绍到这了,更多相关批处理bat脚本内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论