2014-10-28 6 views
9

अपडेट न करें मैं के साथ एंड्रॉयड स्टूडियो काम कर रहा हूँ 8.9एंड्रॉयड स्टूडियो: स्नैपशॉट निर्भरता ठीक से

मैं परिभाषित निम्नलिखित निर्भरता के साथ एक build.gradle मिल गया है:

compile ('my.program.commons:my-program-commons:[email protected]') 

यह निर्भरता संग्रहीत किया जाता है एक निजी सोनाटाइप नेक्सस भंडार में।

जब मैं my.program.commons कोड में परिवर्तन करता हूं, तो मैं नेक्सस पर अपलोड करता हूं।

समस्या यह है कि जब मैं नए स्नैपशॉट के खिलाफ संकलन करने का प्रयास करता हूं तो एंड्रॉइड स्टूडियो परिवर्तन लेने में विफल रहेगा।

कमांड लाइन ग्रेडल से चलाए जाने पर सफलतापूर्वक निर्माण होगा - लेकिन एंड्रॉइड स्टूडियो नई फाइलों को पहचान नहीं पाएगा।

तो मैं एक संस्करण टिक करते हैं - कहते हैं कि 0.0.2-स्नैपशॉट के 0.0.3-स्नैपशॉट को एंड्रॉयड स्टूडियो नए संस्करण और डाउनलोड समझ जाएगा और सब कुछ ठीक से काम करता है।

मैं प्रत्येक बदलाव पर एक मामूली संस्करण टिक नहीं करना चाहता हूं।

उत्तर

5

आप 24 घंटे के लिए अद्यतनों को देखने नहीं होगा कैश अवधि कॉन्फ़िगर करने के लिए, डिफ़ॉल्ट Gradle द्वारा की जरूरत है:

http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:controlling_caching

+0

धन्यवाद, मैं इस बाहर कल लगा। इस निर्भरता को "बदलते" के रूप में निर्भरता को चिह्नित करने के साथ-साथ इस समस्या को हल किया गया। –

+0

मुझे लगता है कि एक निर्भरता को "बदलना" के रूप में चिह्नित करने से मुझे लगता है कि यदि आप एक निर्दिष्ट करते हैं तो इसे संभावित रूप से अलग (छोटे) कैशिंग समय का उपयोग करने की अनुमति मिलती है। अन्यथा, इसे केवल "सामान्य" कैशिंग समय का उपयोग करना चाहिए, जिसे आप सामान्य से कम अवधि के रूप में भी निर्दिष्ट कर सकते हैं। – DataGraham

8

तुम भी एक ध्वज "बदलते" कहा जाता है कि Gradle ट्रिगर किया जाएगा डाल सकते हैं हमेशा की तरह, नवीनतम खींचने के लिए उदाहरण के लिए:

compile ('my.program.commons:my-program-commons:[email protected]') { 
changing = true; 
} 
+1

मैंने पाया कि आपको कैश अवधि दोनों को जोड़ना था, और यह बदलने के लिए बदलते मूल्य की आवश्यकता थी कि यह सही तरीके से काम करे। यहां तक ​​कि मुझे अभी भी - कभी-कभी रीफ्रेश-निर्भरताएं चलाना पड़ता है। स्वीकृत उत्तर पर मेरी टिप्पणी चेकआउट करें। –

+0

- रीफ्रेश-निर्भरताओं का उपयोग कैसे करें? कमांड लाइन से – Fang

+1

: ./gradlew --refresh-dependencies –

9

मेरे मामले में, changing = true का उपयोग मेरे लिए काम नहीं। लेकिन कैश बदलने वाले मॉड्यूल को कॉन्फ़िगर करें मेरी समस्या का समाधान करें। नमूना कोड के नीचे, build.gradle फ़ाइल में जोड़ें:

configurations.all { 
    // Don't cache changing modules at all. 
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds' 
} 

देखें: https://docs.gradle.org/current/userguide/dependency_management.html

+0

यह 'निर्भरता' अनुभाग में जाता है। –

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