gradle 自定义task 实现发版

1.使用org.hidetake.ssh,通过自定义 task 实现。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.hidetake:gradle-ssh-plugin:2.9.0'
    }
}

apply plugin: 'java'
apply plugin: 'org.hidetake.ssh'
apply plugin: 'war'

war {
    archiveName 'test.war'
}

ssh.settings {
    knownHosts = allowAnyHosts
}

//配置远程服务器信息
remotes {
    deployServer {
        host = 'ip地址'
        user = '登陆用户'
        password = '密码'
    }
}

//关闭tomcat
task shutdownTomcat(dependsOn: build) << {
    ssh.run {
        session(remotes.deployServer) {
            println 'shut down tomcat...'
            executeScript '''#!/bin/sh  
                        cd /home/user/tomcat/bin/  
                        ./shutdown.sh  
                    '''
        }
    }
}
//删除旧war包
task del(dependsOn:shutdownTomcat) << {
    ssh.run {
        session(remotes.deployServer) {
            println 'start deleting...'
            executeScript '''#!/bin/sh  
                        rm -f /home/user/tomcat/webapps/test.war
                        rm -rf /home/user/tomcat/webapps/test
                    '''
            println 'delete old war'
        }
    }
}

task copy(dependsOn:del) << {
    ssh.run {
        session(remotes.deployServer) {
            println 'start copying war...'
            put from: buildDir.toString() + '/libs/test.war', into: '/home/user/tomcat/webapps'
            println '上传成功'
        }
    }
}

task deploy(dependsOn:copy) << {
    ssh.run {
        session(remotes.deployServer) {
            println 'start tomcat...'
            execute '/home/user/tomcat/bin/startup.sh'
            println 'done'
        }
    }
}

2.放到windows 某tomcat下,使用 copy

war {
    archiveName 'test.war'
}

//复制任务
def dir = "C:\\Users\\zzw\\Desktop\\ssh"
task(copy, type: Copy) {
    from(file('build/libs/test.war'))
    into(dir)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值