记录下批处理bat脚本获取打包发布问题
最近做了个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脚本获取打包发布问题的更多相关文章
- 今天我自己第一次写了一个Windows批处理bat脚本,一起学习一下吧。
今天我自己第一次写了一个Windows批处理bat脚本,备注一下 事情原由:自己使用Java开发了一个加解密的工具.但是当把工具给别人使用的时候,别人还需要把代码编译打包, 然后还需要看一下代码里面的 ...
- 基于bat脚本的前端发布流程的优化
背景介绍 前面在基于bat脚本的前端发布流程设计与实现中,我已经介绍了设计与实现,这一篇主要是针对其的一个优化折腾(分两步走,第一步先搞出来,第二步再想着怎么去优化它),我主要做了以下几件事. &qu ...
- 批处理bat脚本编写(附详细例子)
批处理bat脚本编写(附详细例子) 由于在项目开发的过程中经常需要编写bat脚本,而看大牛们编写 ...
- 批处理bat命令--获取当前盘符和当前目录和上级目录
批处理bat命令--获取当前盘符和当前目录和上级目录 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试 以下例子是命令行编译Visual S ...
- [ Windows BAT Script ] BAT 脚本获取windows权限
BAT 脚本获取windows权限 @echo off echo I am trying to run as Administrator %1 %2 ver|find "5."&g ...
- 基于bat脚本的前端发布流程设计与实现
写在前面 本文大致向读者介绍了楼下几点知识,希望在编写bat脚本时候能够帮到读者,如果能够有所启迪,那就更好了. bat脚本的相关知识和案例编写 用windows自带的命令压缩文件 windows和l ...
- 记录下自己写的gulp打包脚本
var c = { rootPath: 'src',//项目文件夹 outputPath: 'output',//文件编译后的输出目录 revPath: 'manifest',//rev映射文件目录 ...
- 批处理bat标准化获取当前系统日期的几种方法,补0
首先有两个推荐的方案. 一: for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get Loc ...
- linux下使用shell脚本获取终端宽度
获取终端大小时候的学习 学习日期:2018/11/3 问题来源: 在写shell脚本时想输出一行占满整个终端屏幕宽度的 横杠 发现for循环会导致执行缓慢 解决方法: 使用yes 命令 sed '50 ...
- mac下git+maven+jenkins自动打包发布
随着springboot+springcloud(dubbo)越来越多人使用,流行的微服务的概念越来越深入人心.分布式部署越来越复杂,给手动发布带来很大工作量.为了方便前期测试和后期线上部署更新,可使 ...
随机推荐
- Group 和 Distinct 列的次序影响查询性能
目录 一.概述 二.work_mem 满足排序情况 1.Distinct 语句 2.Group by 语句 三.work_mem 不满足排序情况 1.Distinct 语句 2.Group by 语句 ...
- EntityFrameworkCore 模型自动更新(上)
话题 嗯,距离上一次写博文已经过去近整整十个月,还是有一些思考,但还是变得懒惰了,心思也不再那么专注,有点耗费时间,学习也有点停滞不前,那就顺其自然,随心所欲吧,等哪天心血来潮,想写了就写写 模型自动 ...
- 【项目实战】CNN手写识别复杂模型的构造
感谢视频教程:https://www.bilibili.com/video/BV1Y7411d7Ys?p=11 这里开一篇新博客不仅仅是因为教程视频单独出了1p,也是因为这是一种代码编写的套路,特在此 ...
- C++自学笔记 初始化列表 Initializer list
初始化p A(){ p = 0;cout<<"A::A()"<<endl;} 初始化列表 Initializer list A():p(0){ cout&l ...
- activeMq不能被主机访问的问题
环境说明 主机:mac 虚拟机:VirtualBox 虚拟系统:Centos6.5 问题:虚拟机启动了 activemq. 也关闭了防火墙,但是在主机访问web界面,http://192.168.1. ...
- Python模拟客户端
本机客户端 import socket # 获取到socket sk = socket.socket() # 获取到地址 ip 和 端口号 server端的 address = ('127.0.0.1 ...
- postman一些你不常用的实用技巧,竟然还能这么玩
序言 各位好啊,我是会编程的蜗牛,作为java开发者,平时调试接口的时候,肯定需要用到接口调试工具,或者Swagger之类的.Swagger的优势在于它可以将后台加的一些接口注释信息直接展示出来,但是 ...
- golang中的变量阴影
索引:https://waterflow.link/articles/1666019023270 在 Go 中,在块中声明的变量名可以在内部块中重新声明. 这种称为变量阴影的原理很容易出现常见错误. ...
- 靶机: easy_cloudantivirus
靶机: easy_cloudantivirus 准备 下载靶机(Target):https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/ ...
- NLP之基于词嵌入(WordVec)的嵌入矩阵生成并可视化
词嵌入 @ 目录 词嵌入 1.理论 1.1 为什么使用词嵌入? 1.2 词嵌入的类比推理 1.3 学习词嵌入 1.4 Word2Vec & Skip-Gram(跳字模型) 1.5 分级& ...