2016-02-17 5 views
6

मुझे पता है कि मैं एक विरूपण साक्ष्य को स्थापित करने और स्थानीय स्तर पर यह उपयोग करने के लिए maven प्लगइन mavenLocal() के साथ मिलकर उपयोग कर सकते हैं।ग्रैडल: क्या ग्रैडल के अपने स्थानीय कैश को प्रकाशित करना संभव है?

हालांकि यह थोड़ा और जांच कर रहा है, मुझे लगता है कि इसका मतलब है कि कलाकृतियों को मावेन्स के मानक ~/.m2 पर स्थापित किया गया है, लेकिन साथ ही ग्रैडल का अपना कैश ~/.gradle/caches के तहत एक अलग प्रारूप में रहता है।

यह मेरे लिए बेकार लगता है, क) दो स्थानीय कैश के साथ काम करने, और ख) होने सभी परियोजनाओं के लिए mavenLocal() जोड़ने के लिए। अगर वहाँ Gradle के ~/.gradle/caches के लिए एक विरूपण साक्ष्य को प्रकाशित करने के लिए एक रास्ता है मैं सोच रहा था?

उत्तर

9

ध्यान दें कि स्थानीय Maven निर्देशिका एक कैश नहीं है, और है कि Gradle कैश भंडार नहीं है। ग्रैडल केवल दूरस्थ कलाकृतियों को कैश करने के लिए अपने कैश का उपयोग करता है, इसे स्थानीय मैवेन रिपॉजिटरीज़ से पुनर्प्राप्त कलाकृतियों की प्रतिलिपि नहीं लेनी चाहिए। बदले में, you cannot publish artifacts to the Gradle cache

तो दृष्टिकोण के लिए प्रकाशित और mavenLocal() का उपयोग के रूप में बेकार के रूप में आपको लगता है नहीं होना चाहिए करने के लिए। साथ ही, आपको मल्टी-प्रोजेक्ट की सभी परियोजनाओं में अलग-अलग mavenLocal() जोड़ने की आवश्यकता नहीं है। आप बस अपनी रूट प्रोजेक्ट में allprojects { repositories { mavenLocal() } } जैसे कुछ का उपयोग कर सकते हैं। या यदि आप में mavenLocal() चाहते सभी अपने स्वतंत्र Gradle परियोजनाओं तुम भी ~/.gradle/init.gradle में जोड़ने की कोशिश कर सकते।

+0

वैसे यह एक आंतरिक बिल्ड प्लगइन के लिए है, इसलिए 'allprojects' काम नहीं करेगा क्योंकि मैं 'mavenLocal()' को 'बिल्डस्क्रिप्ट' में जोड़ रहा हूं। लेकिन यह सवाल का जवाब देता है। –