windows自动化打包部署Java程序

1 篇文章 0 订阅
1 篇文章 0 订阅

windows自动打包部署Java程序

项目部署在windows服务器上,编写bat批处理脚本进行自动化部署

准备工作

在目标服务器上安装Java、Maven、其他需要安装的软件,并配置环境变量

总流程

停止程序

停止正在运行的Java程序和与Java一同运行的程序,如果这些程序未停止,会导致文件占用无法删除和无法启动

设置需要关闭的端口,通过查询端口获取PID,关闭对应端口的程序

这里8100端口是Java程序的,9996是定时任务程序的端口

@echo off
rem 设置监听的端口号
set java-port=8100
set job-port=9996

echo java-port : %java-port%
echo job-port : %job-port%

for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %java-port%`) do (
	if [%%d] EQU [LISTENING] (
		set java-pid=%%e
	)
)

for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %java-pid%`) do (
	set java_name=%%a
)
rem 根据进程ID,kill进程
taskkill /f /pid %java-pid%
echo kill process : port %java-port%, pid %java-pid% ,name %java_name%

for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %job-port%`) do (
	if [%%d] EQU [LISTENING] (
		set job-pid=%%e
	)
)

for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %job-pid%`) do (
	set job_name=%%a
)
taskkill /f /pid %job-pid%
echo kill process : port %job-port%, pid %job-pid% , name %job_name%
删除项目的代码

因为每次都是去git上拉取最新代码,然后通过Maven打包。上个版本的代码不需要防止冲突问题,这里直接删除掉整个工程文件。

这里第一个项目project-a是公共依赖模块,第二个项目project-b是我们真正要运行的

rmdir project-a /s /q
rmdir project-b /s /q
拉取代码

拉去两个项目的最新代码,切换到需要发布的分支(完成后,目录记得回到主文件夹)

git clone https://gitee.com/****/project-a.git
git clone https://gitee.com/***/project-b.git
cd project-a
git checkout dev
cd ../project-b
git checkout dev
cd ../
Maven清理和打包

执行mvn clean清理两个工程的target, 因为工程b要依赖于工程a,所以a打包完成后,需要执行install将jar依赖加入到maven仓库,才能执行b的打包(注意clean操作要在a install之前操作)

这里有一个坑,mvn的命令都是批处理命令,如果在bat中直接执行,执行完mvn命令后会直接退出,在mvn前面加上call可以解决这个问题

call mvn clean
cd ../project-a
call mvn clean
call mvn package
call mvn install:install-file -Dfile=C:\文件地址\target\project-a.jar -DgroupId=**.**.** -DartifactId=**.**.** -Dversion=1.0.0 -Dpackaging=jar
cd ../project-b
call mvn package
运行

执行project-b的jar包,运行java程序

cd project-b\target
javaw -jar project-b.jar

将所有命令放入bat文件中,并放入与项目a,b同级目录,每次发版执行bat脚本即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值