Gradle之FTP文件下载

Posted hejing-michael

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle之FTP文件下载相关的知识,希望对你有一定的参考价值。

Gradle之FTP文件下载

1、背景

项目上需要使用本地web,所以我们直接将web直接放入assets资源文件夹下。但是随着开发进行web包越来越大;所以我们想着从版本库里面去掉web将其忽略掉,使用gradle命令下载web。由于web包是放在局域网服务器上的,服务器支持FTP文件协议,所以使用FTP插件下载文件。

2、FTP

FTP官网文档
技术图片
Gradle官网文档
gradle配置
技术图片

3、FTP工具

ftp-util.gradle

configurations 
    ftpAntTask


dependencies 
    ftpAntTask("org.apache.ant:ant-commons-net:1.9.2") 
        module("commons-net:commons-net:3.3")
    


void downloadFtpFiles(String serverIp, String userId, String password, String url, localDir) 
    ant.taskdef(
            name: 'ftp',
            classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP',
            classpath: configurations.ftpAntTask.asPath
    )

    //指定ftp地址及账户信息
    ant.ftp(action: 'get', server: serverIp, userid: userId, password: password, remotedir: url) 
        // 删除老文件
        delete(new File(localDir))

        //指定下载文件位置
        fileset(dir: new File(localDir)) 
            include(name: "**")
        
    


//导出函数
ext 
    downloadFtpFiles = this.&downloadFtpFiles

使用方式:

导入方式:将ftp-util.gradle文件放在根目录下然后使用一下代码导入groovy代码

apply from: "$project.rootProject.file('ftp-util.gradle')"

下载任务

task downloadFiles() 
    //清理缓存
    dependsOn 'clean'
    def dir = buildDir.getPath() + '/dir'
    doLast 
        //获取最新版本信息
        ant 
            println 'web-ftp:serverIp:' + serverIp
            println 'web-ftp:userId:' + userId
            println 'web-ftp:password:' + password
            println 'web-ftp:dir:' + dir

            println 'web-ftp:sync start'

            def url = webUrl + '/latest'

            //调用FTP插件下载文件函数
            downloadFtpFiles(serverIp, userId, password, url, dir)
            println 'web-ftp:sync end'
        
    

调用task方式

./gradlew downloadFiles

以上是关于Gradle之FTP文件下载的主要内容,如果未能解决你的问题,请参考以下文章

Linux之FTP文件共享服务

2.1.5基础之命令行链接ftp dos中的ftp上传下载文件

2.1.5基础之命令行链接ftp dos中的ftp上传下载文件

第十章 网络文件共享服务之ftp

linux远程下载文件 的两种方法之 ftp命令和scp命令

python之FTP上传和下载