I am new to gradle and I don't know how to upload my /bin folder contents to the FTP server. Tried to find solution in internet, but they didn't help to me.
My build.gradle file is as follows:
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'
}
}
Now I want to write task which will upload /bin folder contents to the FTP server. Any help would be appreciated. Thanks in advance
ftpAntTask is fairly simple to use.
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)")
}
}
}
}
(This example was made from How to FTP a file from an Android Gradle build?)
Use apache commons net library. There's an example of FTPClient
usage.
You also need to configure dependencies for the build script itself. Following code does it:
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..
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With