2014-04-11 21 views
14

से फ़ाइल डाउनलोड और अनजिप करें यूआरएल (http) से फ़ाइल को डाउनलोड और अनजिप करने का उचित क्रम तरीका क्या होगा?ग्रेडल - यूआरएल

यदि संभव हो, तो मैं प्रत्येक बार कार्य चलाने के बाद पुनः डाउनलोड करना बंद कर दूंगा (ant.getskipexisting: 'true' द्वारा प्राप्त किया जा सकता है)।

मेरे वर्तमान समाधान होगा:

task foo { 
    ant.get(src: 'http://.../file.zip', dest: 'somedir', skipexisting: 'true') 
    ant.unzip(src: 'somedir' + '/file.zip', dest: 'unpackdir') 
} 

अभी भी, मैं चींटी से मुक्त समाधान उम्मीद थी। इसे हासिल करने का कोई मौका?

+2

मत भूलना निष्पादन हिस्सा रैप करने के लिए 'doLast {...}' के साथ एक कार्य का (जैसा कि आपके पिछले प्रश्न में समान गलती है)। –

+0

~~ BOUNTY ~~ क्या कोई नीचे दिए गए उत्तर के लिए एक उदाहरण प्रदान कर सकता है: "यदि आप कस्टम आर्टिफैक्ट यूआरएल के साथ एक आइवी रिपोजिटरी का दावा करते हुए ग्रैडल के निर्भरता रिज़ॉल्यूशन/कैशिंग सुविधाओं से लाभ उठाना चाहते हैं"? – CMPS

+0

चींटी के साथ क्या गलत है? मैं वास्तव में वास्तव में अपने समाधान पसंद है! –

उत्तर

7

वर्तमान में एक यूआरएल से डाउनलोड करने के लिए ग्रैडल एपीआई नहीं है। आप एंटी, ग्रोवी, या, यदि आप कस्टम आर्टिफैक्ट यूआरएल के साथ एक आइवी रिपोजिटरी का नाटक करके, ग्रैडल के निर्भरता रिज़ॉल्यूशन/कैशिंग सुविधाओं से लाभ उठाना चाहते हैं, तो इसका उपयोग करके इसे कार्यान्वित कर सकते हैं। अनजिपिंग सामान्य ग्रैडल तरीके (copy विधि या Copy कार्य) में किया जा सकता है।

+4

मैं एक उदाहरण की सराहना करता हूं ... मैं कुल मिलाकर नौसिखिया हूँ! – xpmatteo

+3

~~ BOUNTY ~~ क्या कोई इस जवाब के लिए एक उदाहरण प्रदान कर सकता है "यदि आप कस्टम आर्टिफैक्ट यूआरएल के साथ एक आइवी रिपोजिटरी का नाटक करके ग्रैडल के निर्भरता रिज़ॉल्यूशन/कैशिंग सुविधाओं से लाभ उठाना चाहते हैं"? – CMPS

+0

@ सीएमपीएस क्यों आप कोई ग्रोवी नहीं? – RaGe

28

@CMPS:

https://github.com/jmeter-gradle-plugin/jmeter-gradle-plugin/archive/1.0.3.zip 
:

तो कहते हैं कि तुम एक निर्भरता के रूप में यह ज़िप फ़ाइल डाउनलोड करना चाहते हैं

आप अपने आईवी रेपो को परिभाषित करते हैं:

repositories { 
    ivy { 
     url 'https://github.com/' 
     layout 'pattern', { 
      artifact '/[organisation]/[module]/archive/[revision].[ext]' 
     } 
    } 
} 

और उसके बाद के रूप में उपयोग:

dependencies { 
    compile 'jmeter-gradle-plugin:jmeter-gradle-plugin:[email protected]' 
    //This maps to the pattern: [organisation]:[module]:[revision]:[classifier]@[ext]   
} 

उधार @Matthias 'unzip कार्य, Gradle कैश से जिप उठा छोड़कर:

task unzip(type: Copy) { 

    def zipPath = project.configurations.compile.find {it.name.startsWith("jmeter") } 
    println zipPath 
    def zipFile = file(zipPath) 
    def outputDir = file("${buildDir}/unpacked/dist") 

    from zipTree(zipFile) 
    into outputDir 
} 
+0

कूल, मैं अब कोशिश कर रहा हूं .. – CMPS

+0

एक आकर्षण की तरह काम करता है! धन्यवाद – CMPS

+0

@RaGe 1.0.3 कैसे करता है: कक्षा @ ज़िप [संशोधन] से मेल खाता है। [Ext]? उस स्ट्रिंग में – addy

संबंधित मुद्दे