如何使用Gradle将文件夹内容上载到FTP服务器

时间:2014-06-05 08:00:21

标签: gradle build.gradle

我是新手,我不知道如何将我的/ bin文件夹内容上传到FTP服务器。试图在互联网上找到解决方案,但他们对我没有帮助。

我的build.gradle文件如下:

apply plugin: 'java'

sourceCompatibility = 1.6
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.apache.httpcomponents:httpclient:4.3.3'
    compile fileTree(dir: 'lib', include: '*.jar')
    compile 'org.apache.directory.studio:org.dom4j.dom4j:1.6.1'
    compile 'jaxen:jaxen:1.1.4'

    testCompile group: 'junit', name: 'junit', version: '4.11'
}

build.doLast {
    copy {
        into 'bin'
        from 'build/libs'
    }
}

现在我想编写将文件夹内容上传/ bin到FTP服务器的任务。 任何帮助,将不胜感激。提前致谢

2 个答案:

答案 0 :(得分:3)

使用apache commons net库。 FTPClient使用example

您还需要为构建脚本本身配置依赖项。以下代码执行:

import org.apache.commons.net.ftp.FTPClient

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'commons-net:commons-net:3.3'
    }
}

task upload << {
     def ftp = new FTPClient()
     //following logic..
}

答案 1 :(得分:3)

ftpAntTask使用起来相当简单。

buildscript {
    repositories {
        mavenCentral()
    }
}
repositories{
    mavenCentral()
}

configurations {
    ftpAntTask
}

dependencies {
    ftpAntTask("org.apache.ant:ant-commons-net:1.8.4") {
        module("commons-net:commons-net:1.4.1") {
            dependencies "oro:oro:2.0.8:jar"
        }
    }
}

task ftp << {
    ant {
        taskdef(name: 'ftp',
                classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP',
                classpath: configurations.ftpAntTask.asPath)
        ftp(server: "(removed)", userid: "(removed)", password: "(removed)", remoteDir: "(removed)") {
            fileset(dir: "(removed)") {
                include(name: "(removed)")
            }
        }
    }
}

(此示例来自How to FTP a file from an Android Gradle build?