Java打包、上传服务器、部署springboot应用简单脚本

一.应用场景:

本地开发java应用程序,当部署时,要打包java应用,上传jar包到远程服务器,登录远程服务器并执行指令进行重启java服务。

有时候需要频繁反复进行该操作,每次都这样一步一步的做,有些繁琐并且浪费时间,因此写了一份shell脚本,只需要执行一个脚本指令,便自动做了上述所有的事情,节省了许多事。

二.环境

1.springboot的应用,java -jar跑服务,linux服务器使用账号密码登录(使用私钥等只需要修改对应的scp,ssh命令即可)

2.shell脚本,需要shell运行环境支持。mac下默认支持,windows需要使用powershell,区别于cmd,该程序支持shell脚本运行。当使用密钥时,需要修改id_rsa文件的读写权限,设置为当前用户权限就好,具体百度即可。

三.思路

重现步骤,第一步,mvn打包java应用,第二步,上传jar包和对应的配置文件到服务器,第三步,登录服务器,执行部署脚本

四.实现

1.首先新建打包脚本 package.sh

#!/bin/bash

mvn clean package -Dmaven.test.skip=true

该脚本进行打包指令,需要依赖maven环境,具体需要配置MAVEN_HOME还有PATH,也不多说了

2.写好上传服务器脚本 scp.sh

#! /usr/bin/expect
#目标服务器ip,接收第一个参数
set target_ip [lindex $argv 0]
#目标服务器端口,接收第二个参数
set target_port [lindex $argv 1]
#目标服务器用户名,接收第三个参数
set scpUser [lindex $argv 2]
#目标服务器密码,接收第四个参数
set scpPwd [lindex $argv 3]
#传输到目标服务器的路径
set target_path [lindex $argv 4]
#打印接收到的参数
for {set i 0} {$i < $argc} {incr i} {
 #打印参数
  puts "arg $i: [lindex $argv $i]"
}
#从第六个参数开始,作为发送的文件参数,通配符时,会把匹配到的所有文件依次传进
for {set i 5} {$i < $argc} {incr i} {
 #scp指令  -P是端口,默认ssh端口是22, -r是发送的文件路径, :后面是目标地址,如果使用私钥,可以用 scp -i xxx/id_rsa -P ,把-i放在最前面
  spawn scp -P $target_port -r [lindex $argv $i] $scpUser@$target_ip:$target_path
 #使用expect的功能
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值