gradle远程部署jar配置

gradle配置
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.hidetake:gradle-ssh-plugin:2.10.1'
        classpath 'org.codehaus.groovy:groovy-backports-compat23:2.4.6'
    }
}

plugins {
    id "org.hidetake.ssh" version "2.10.1"
}

jar {
    rootProject.version = getNewVersionValue()
}
//获取新的版本号
def getNewVersionValue() {
    //用日期作为版本号
    return new Date().format("yyyyMMdd-HHmm", TimeZone.getTimeZone("GMT+08:00"))
}

//远程服务信息
remotes {
    webServer {
        host = '192.168.1.218'
        port = 22
        user = 'root'
        password = 'root'
    }
}

task deploy(dependsOn: bootJar) {
    doLast {
        ssh.run {
            session(remotes.webServer) {
            	//服务器存放jar的路径
                def path = "/usr/local/test"
				//复制jar到服务器上    打包的jar: ammeter-20210915-1126.jar
                put from: bootJar {}.getArchiveFile().get().toString(), into: path
               // 通过正则查找 "ammeter-[0-9]{8}-[0-9]{4}.jar"
                //删除多余的jar
                executeScript """
                                #!/bin/sh
                                echo "删除多余的jar"
                                jarName=`ls -t $path | grep -E "ammeter-[0-9]{8}-[0-9]{4}.jar" | sed -n '3,\$p'`
                                if [ "\$jarName" ]
                                then
                                echo "正在删除文件 \$jarName"
                                rm -rf $path/\$jarName
                                else
                                echo "没有要删除的"
                                fi
                              """

                // 关闭进程
                executeScript """
                                #!/bin/sh
                                echo "关闭进程"
                                PID=`ps -aux | grep -E "ammeter-[0-9]{8}-[0-9]{4}.jar" |  grep -v grep | awk '{print \$2}'`
                                if [ "\$PID" ]
                                then
                                echo "正在kill进程"
                                kill -9 \$PID
                                else
                                echo "没有进程需要kill"
                                fi
                              """
                //执行jar
                execute """java -jar $path/${bootJar.archiveName} --spring.profiles.active=pro"""

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值