Próbuję FTP podpisanego pliku APK po kompilacji Gradle. Dodałem już nową konfigurację kompilacji, która podpiszę plik APK, ale utknąłem próbując dowiedzieć się, jak wywołać zadanie FTP.Jak przesłać FTP plik z wersji Android Gradle?
Znalazłem oficjalny wygląd próbki na section 59.6, jednak narzeka, że nie może rozwiązać zależności org.apache.ant: ant-commons-net: 1.8.4. Najwyraźniej brakuje tu czegoś oczywistego, na przykład, gdzie umieścić dany plik słoika lub odwołać się do niego, chociaż myślałem, że maven poradzi sobie z takimi rzeczami?
Dla porównania, tutaj jest próbka, która nie wiąże się z komunikatem o zależność:
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: "[email protected]") {
fileset(dir: "htdocs/manual")
}
}
}
ta kończy się niepowodzeniem z komunikatem:
> Could not find org.apache.ant:ant-commons-net:1.8.4.
Oto mój pełny plik gradle.build, po usunięciu niektórych poufnych informacji:
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)")
}
}
}
}
Dzięki, ale, mam to w moim pliku kompilacji. Zaktualizowałem moje pytanie. –
Nie, właśnie zadeklarowałeś repozytorium dla swoich wtyczek gradle (blok repozytorium w sekcji buildscript), potrzebujesz innego na toplevel, jak to zrobiłem w moim fragmencie. Są plany, aby ułatwić stosowanie wtyczek w przyszłości i ułatwić to. –
Masz rację ... to naprawiło. dzięki –