Ich versuche, die signierte APK nach einem Gradle-Build FTP. Ich habe bereits die neue Build-Konfiguration hinzugefügt, die das APK signieren wird, aber ich bleibe stecken und versuche herauszufinden, wie man eine FTP-Aufgabe aufruft.Wie füge ich eine Datei von einem Android Gradle Build?
Ich fand ein offizielles Muster bei section 59.6, aber es beschwert sich, dass es keine Abhängigkeit auflösen kann org.apache.ant: ant-commons-net: 1.8.4. Offensichtlich vermisse ich hier etwas Offensichtliches, zum Beispiel, wo ich eine bestimmte JAR-Datei ablegen oder auf sie verweisen sollte, obwohl ich dachte, Maven würde mit so etwas umgehen?
Als Referenz hier ist die verknüpfte Probe, die mit einer Meldung über die Abhängigkeit fehlschlägt:
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")
}
}
}
Dies schlägt mit der Nachricht:
> Could not find org.apache.ant:ant-commons-net:1.8.4.
Hier ist meine komplette gradle.build Datei, mit einigen sensiblen Informationen entfernt:
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)")
}
}
}
}
Danke, aber ich habe das in meiner Build-Datei. Ich habe meine Frage aktualisiert. –
Nein, Sie haben gerade ein Repository für Ihre Gradle-Plugins (der Repository-Block im Buildscript-Bereich) deklariert, Sie benötigen einen anderen auf Toplevel, wie ich es in meinem Code-Schnipsel gemacht habe. Es gibt Pläne, Plugins in Zukunft einfacher zu installieren und zu vereinfachen. –
Sie haben Recht ... das hat es behoben. Vielen Dank –