由于之前用的mac系统, 直接写shell本地运行一键发版开发/测试/生产, 后公司配电脑后调试发版贼麻烦. 于是想着写一个bat脚本直接一键发版岂不美哉. 想到就做!
目标: 实现bat脚本一键去拉代码, 去打包, 传输到linux, 执行写好的shell脚本.
windows中需要一些exe程序来搭桥, 其中我用到了两个 plink.exe 和 pscp:
pscp : 可以连接拷贝文件到linux, 即我使用这个将前端vue的dist目录和后端jar包上传上去
plink.exe: 可以连接linux执行shell脚本, 即再服务器写一些启动脚本,用这个去调用
以上两个工具需要搜索下载,然后放到一个目录即可(很好找,请自行百度哈)
我写了两个bat, 第一个build_datam.bat即git本地操作拉代码和打包, 第二个start_datam_docker.bat传输和执行shell发版
// build_datam.bat 进入f盘 cd到项目路径, 执行git拉代码 和编译打jar包
f:
cd projects
cd java
cd datamanagement-slave
set startDir=%cd%
git pull origin master
mvn clean package
TIMEOUT /T 2
// start_datam_docker.bat 首先调用第一个bat, 然后调用shell删除原来运行的程序和jar包,传输新的jar包,并调用shell启动新的程序(我这里用到了docker,所以shell脚本名都含有docker,请忽略)
@echo off
echo start..........
call build_datam.bat
set passwd=g@)20
set name=data-manager-agent-0.0.1-SNAPSHOT.jar
set folder=F:\projects\java\data-manager-agent\target\
plink.exe -batch -pw %passwd% root@datams cd /root/xings1/solfware/docker/;sh del_docker_jar.sh
pscp -r -P 22 -pw %passwd% %folder%%name% root@datams:/root/xings1/solfware/docker/
plink.exe -batch -pw %passwd% root@datams cd /root/xings1/solfware/docker/;source /etc/profile;sh docker.sh restart
echo end
总结
至此结束, 发版自己搭建的测试环境可以直接点一下bat就行了,
生产最好不要这样搞, 可以使用jekins等工具更方便.