2011-12-12 21 views
8

मैंने सोचा कि अपलोड आर्चिव्स एक ऐसा काम है जो जावा प्लगइन द्वारा प्रदान किया जाता है। मेरी build.gradle में मैं जावा प्लगइन का उपयोग:अपलोड सूची में अपलोड क्यों नहीं किया जाता है?

apply plugin: 'java' 

लेकिन अगर मैं कमांड लाइन पर gradle tasks आह्वान, मैं uploadArchives कार्य नहीं देख सकता। Gradle gradle tasks --all

साथ uploadArchives कार्य Gradle जावा प्लगइन दस्तावेज में सूचीबद्ध है

भी नहीं http://www.gradle.org/java_plugin (तालिका 11) देखें।

मैं ग्रेडल संस्करण 1.0-मील का पत्थर -6 का उपयोग करता हूं।

मैं बिना त्रुटि के gradle uploadArchives का आह्वान कर सकता हूं, लेकिन कार्य सूचीबद्ध नहीं है।

उत्तर

9

uploadArchives कार्य स्पष्ट रूप से नाम से नहीं अपने निर्माण स्क्रिप्ट के लिए एक नियम के रूप में जोड़ा जाता है और: आप जोड़ने के लिए।

 
Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration. 

इसका मतलब यह है, कि अपने निर्माण फ़ाइल में प्रत्येक विन्यास के लिए, एक अनुसार uploadTask मौजूद हैं: "Gradle कार्य" के उत्पादन में आप इस लाइन को देखना चाहिए। जावा प्लगइन आपके निर्माण स्क्रिप्ट में अभिलेखागार नामक कॉन्फ़िगरेशन जोड़ता है। जावा प्लगइन द्वारा स्पष्ट रूप से अपनी बिल्ड स्क्रिप्ट में कॉन्फ़िगरेशन "अभिलेखागार" जोड़कर, अपलोडआर्क कार्य को भी स्पष्ट रूप से जोड़ा जाता है।

ऐसे परिदृश्य हैं, जहां ग्रेडल को यह नहीं पता कि नियमों द्वारा किन कार्यों को पूरा करने की आवश्यकता है।

उदा।

tasks.addRule("Pattern: ping<ID>") { String taskName -> 
    if (taskName.startsWith("ping")) { 
     task(taskName) << { 
      println "Pinging: " + (taskName - 'ping') 
     } 
    } 
} 

जो पिंग कार्यों के रूप में वे सिर्फ materialized कर रहे हैं जब के माध्यम से 'Gradle pingServer1 pingServer2 pingServer3'

संबंध कमांडलाइन से शुरू हो रहा दिखाया जाना चाहिए, रेने यह पता लगाने की

+0

पर मुझे पता है कि आप धीरे-धीरे डेवलपर्स में से एक हैं ... तो क्या इन implicite कार्यों को भी कार्य सूची में सूचीबद्ध नहीं किया जाना चाहिए? – Cengiz

+1

ये कार्य एक नियम द्वारा लागू होते हैं। यही कारण है कि वे सामान्य कार्य सूची में नहीं बल्कि आउटपुट के नीचे दिखाई देते हैं।इसका एक कारण यह है कि वे फ्लाई पर बनाए जाते हैं जब उन्हें कमांड लाइन से कहा जाता है या जब बिल्ड स्क्रिप्ट में संदर्भित किया जाता है। –

+1

'नियम' प्लगइन द्वारा पेश किए गए "पैटर्न क्लीन " नियम का एक और उदाहरण है। जब आप cleanCompileJava gradle को कॉल करते हैं तो उस नाम के साथ कोई कार्य नहीं मिलता है, लेकिन यह एक ऐसा नियम पाता है जो कहता है कि मौजूदा कार्य (compileJava) के "साफ" नाम के इस पैटर्न से मेल खाता है। नियम के कार्यान्वयन में फ्लाई बनाया गया कार्य "cleanCompileJava" 'compileJava' कार्य के आउटपुट को हटा देता है। मुझे लगता है कि प्रत्येक उत्पादक कार्य के सभी स्वच्छ कार्य साथी के साथ कार्य अवलोकन को प्रदूषित करने का अर्थ नहीं है। –

1

अपलोडआर्किव्स कार्य मेवेन-प्लगइन का एक हिस्सा है।

apply plugin: 'maven' 
+0

मैं आह्वान कर सकते हैं कोई तरीका नहीं है बिना त्रुटि के और बिना मैवेन प्लगइन के अपलोड अपलोड करें। – Cengiz

+0

अजीब; हमेशा सोचा कि यह मैवेन-प्लगइन से संबंधित है। आपने http://gradle.org/maven_plugin में वर्णित 'uploadArchives {}' -configuration घोषित कर दिया है? – thoredge

+0

कोई भी इसे घोषित नहीं किया है। अपलोड आर्चिव्स उस मामले में कुछ भी नहीं करता है। ' > Gradle uploadArchives :: यहाँ आउटपुट है compileJava यूपी-टू-डेट : processResources यूपी-टू-डेट : कक्षाएं यूपी-टू-डेट : जार यूपी-टू-डेट : अपलोड आर्चिव्स निर्मित सफल ' – Cengiz

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