gradle 自定义task 实现发版

Posted 古月今犹在

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于gradle 自定义task 实现发版的主要内容,如果未能解决你的问题,请参考以下文章

自定义Gradle Task实现一键批量部署Springboot应用

Gradle自定义一个task

Android Gradle 插件自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )

Android Gradle 插件自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )

Android Gradle 插件自定义 Gradle 任务 ④ ( Task#doLast 函数用法 | 自定义 Gradle 任务代码示例 )

Android Gradle 插件自定义 Gradle 任务 ④ ( Task#doLast 函数用法 | 自定义 Gradle 任务代码示例 )