7

Gradle ビルド後に署名済み APK を FTP で送信しようとしています。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)")
            }
        }
    }
}
4

2 に答える 2

2

宣言されたアーティファクトを解決するために使用できるリポジトリを宣言していません。次のスニペットを build.gradle ファイルに追加してみてください。

repositories{
    mavenCentral()
}

乾杯、

レネ

于 2013-06-19T21:45:43.287 に答える