2013-06-19 11 views
7

मैं ग्रैडल बिल्ड के बाद हस्ताक्षरित एपीके को एफ़टीपी करने की कोशिश कर रहा हूं। मैंने पहले ही नई बिल्ड कॉन्फ़िगरेशन को जोड़ा है जो एपीके पर हस्ताक्षर करेगा, लेकिन मैं यह पता लगाने की कोशिश कर रहा हूं कि एफ़टीपी कार्य कैसे शुरू करें।एफ़टीपी को एंड्रॉइड ग्रैडल बिल्ड से फाइल कैसे करें?

मुझे section 59.6 पर एक आधिकारिक दिखने वाला नमूना मिला, हालांकि यह शिकायत करता है कि यह निर्भरता org.apache.ant: ant-commons-net: 1.8.4 को हल नहीं कर सकता है। तो जाहिर है, मैं यहां कुछ स्पष्ट याद कर रहा हूं, जैसे किसी दिए गए जार फ़ाइल को कहां रखना या संदर्भ देना, हालांकि मैंने सोचा कि मैवेन इस तरह की चीज़ को संभालेगा?

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") 
     } 
    } 
} 

इस संदेश के साथ विफल रहता है:

संदर्भ के लिए, जुड़ा हुआ नमूना जो निर्भरता के बारे में एक संदेश के साथ विफल रहता है

> 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)") 
      } 
     } 
    } 
} 

उत्तर

1

आपने एक भंडार घोषित नहीं किया है कि c घोषित कलाकृतियों को हल करने के लिए इस्तेमाल किया जाना चाहिए। अपने build.gradle फाइल करने के लिए निम्नलिखित स्निपेट जोड़ने का प्रयास करें:

repositories{ 
    mavenCentral() 
} 

चियर्स,

रेने

+0

धन्यवाद, लेकिन, मेरे पास अपनी बिल्ड फ़ाइल में है। मैंने अपना प्रश्न अपडेट किया। –

+0

नहीं, आपने अभी अपने ग्रेडल प्लगइन्स (बिल्डस्क्रिप्ट अनुभाग में रिपोजिटरी ब्लॉक) के लिए एक रिपोजिटरी घोषित की है, जिसे आपको अपने स्निपेट में किया है जैसा कि आप इसे किसी अन्य पर अपरिवर्तनीय रूप से चाहते हैं। भविष्य में प्लगइन्स लागू करना आसान बनाने और इसे आसान बनाने की योजना है। –

+0

आप सही हैं ... यह तय है। धन्यवाद –

0

तुम भी देशी चींटी प्राप्त कार्य जो एफ़टीपी का समर्थन करता है का उपयोग कर सकते हैं, कोई बाहर निर्भरता के साथ काम करता है:

ant { 
    get(src: "ftp://<hostname>/remote/path/to/file.jar", dest: "/local/path/to/file", username: 'anonymous', password: 'anonymous') 
    } 
संबंधित मुद्दे