Как FTP-файл с Android Gradle построить?

Я пытаюсь выполнить FTP подписанный APK после сборки Gradle. Я уже добавил новую конфигурацию сборки, которая будет подписывать APK, но я застрял, пытаясь понять, как вызывать задачу FTP.

Я нашел официальный образец в разделе 59.6 , однако он жалуется, что он не может разрешить зависимость org.apache.ant: ant-commons-net: 1.8.4. Так что, видимо, мне не хватает чего-то очевидного здесь, например, где положить данный файл jar или ссылаться на него, хотя я думал, что maven справится с такими вещами?

Для справки, вот связанный образец, который терпит неудачу с сообщением о зависимости:

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: "ftp.apache.org", userid: "anonymous", password: "me@myorg.com") { fileset(dir: "htdocs/manual") } } } 

Это не с сообщением:

 > Could not find org.apache.ant:ant-commons-net:1.8.4. 

Вот мой полный файл gradle.build с удаленной конфиденциальной информацией:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 14 targetSdkVersion 17 } signingConfigs { signed { storeFile file("(removed)") storePassword "(removed)" keyAlias "(removed)" keyPassword "(removed)" } } buildTypes { signed { debuggable false jniDebugBuild false signingConfig signingConfigs.signed } } } 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)") } } } } 

Вы не объявили репозиторий, который можно использовать для разрешения заявленных артефактов. Попробуйте добавить следующий фрагмент в файл build.gradle:

 repositories{ mavenCentral() } 

веселит,

Рене

Вы также можете использовать собственную задачу ant get, которая поддерживает FTP, работает без внешних зависимостей:

  ant { get(src: "ftp://<hostname>/remote/path/to/file.jar", dest: "/local/path/to/file", username: 'anonymous', password: 'anonymous') }