2011-12-05 22 views
20

मैं मैवेन रिमोट एक के लिए मेवेन स्थानीय भंडार का उपयोग करना चाहता हूं। मुझे इसके लिए जेरा-अंक http://issues.gradle.org/browse/GRADLE-1173 मिला, लेकिन मेरी स्प्रैपशॉट निर्भरता को इस तरह से कुछ स्नैपशॉट निर्भरताओं को अनुकूलित करना जो स्थानीय मैवेन रिपोजिटरी में उपलब्ध हैं, अभी भी नहीं पाए गए हैं। मुझे एक त्रुटि मिलती है कि स्नैपशॉट-निर्भरता नहीं मिली है।ग्रेडल बिल्डिंग फ़ाइल में मैवेन स्थानीय और रिमोट रिपोजिटरी को कैसे कॉन्फ़िगर करें?

क्या यह एक स्थानीय और एक दूरस्थ मैवेन भंडार होना संभव है?

यहाँ मेरी Gradle निर्माण फ़ाइल के प्रासंगिक हिस्सा है:

apply plugin: 'maven' 

repositories { 

    mavenLocal() 

    maven { 
     credentials { 
      username "myusername" 
      password "mypassword" 
     } 
     url "http://myremoterepository" 
    } 

} 
+1

मैं एक कारण नहीं दिख रहा है कारण है कि यह shouldn ' टी काम नहीं क्या आप अस्थायी रूप से रिमोट मैवेन रिपोजिटरी और प्रासंगिक निर्भरताओं को छोड़कर देख सकते हैं और देखें कि क्या होता है? यह संभव है कि 'mavenLocal() 'भंडार का स्थान सही ढंग से अनुमानित नहीं कर रहा है। 'MavenRepo urls: "फ़ाइल के साथ सही जगह पर स्पष्ट रूप से इंगित करने का प्रयास करें:' mavenLocal() 'के बजाय फ़ाइल: ///home/user/.m2/repository" और देखें कि क्या होता है। – rodion

+0

ध्यान रखें कि 'X.Y-SNAPSHOT' हमेशा' X.Y' से _older_ है, इसलिए जब आप '-SNAPSHOT' जोड़ते हैं तो अंतिम रिलीज की तैयारी में 'Y' भी टक्कर डालता है। यदि आप पहले से प्रकाशित 'एक्स.वाय'' में '-SNAPSHOT' जोड़ते हैं तो उसे 'X.Y'' X.Y-SNAPSHOT' नहीं मिलेगा। –

उत्तर

21

मैं भी जरूरत मेरे प्रोजेक्ट के साथ एक समान सेटअप करने के लिए और मैं आपके build.gradle सेटअप कार्यों को सत्यापित कर सकता हूं बशर्ते आपका मैवेन सही तरीके से सेटअप हो।

Gradle के mavenLocal()Maven से localRepository परिभाषा पर निर्भर करतीsettings.xml फ़ाइल:

<localRepository>USER_HOME\.m2\repository</localRepository> 

settings.xml अपने M2_HOME/conf या अपने USER_HOME/.m2 directory या तो में होना चाहिए। आप की जाँच करनी चाहिए:

  1. Maven स्थापित किया गया है सही ढंग से
  2. M2_HOME वातावरण चर मौजूद है
  3. settings.xml सही localRepository परिभाषित है ..
+0

कुछ लोग स्थानीय मैवेन भंडार स्थान को ओवरराइड करते हैं (उदाहरण के लिए आईडीई में)।तो मैं मैवेन रेपो के लिए स्पष्ट स्थान रखना पसंद करूंगा: 'maven { url uri (local_repository_path) }' 'gradle.properties' 'से स्थानीय_repository_path' को लिया गया है –

+0

क्या कोई जानता है कि मुझे विंडोज़ पर कॉन्फ़िगर करने के लिए पर्यावरण चर क्या हैं ? मेरा मैवेन इंस्टॉलेशन पथ में है, मेरे पास एक einvironment variable M2_HOME है जो उस फ़ोल्डर को इंगित करता है जहां settings.xml स्थित है, मैवेन खुद को भंडार को ठीक करता है, लेकिन धीरे-धीरे नहीं होता है। जब मैं प्रकाशित करता हूं तो यह बनाता है ToMavenLocal, लेकिन भंडार में कुछ भी दिखाई नहीं देता है। – UncleBob

0

Maven केवल उपयोग कर सकते हैं एक भी स्थानीय ("स्थानीय" = जिस पर Maven चलाता है कंप्यूटर की हार्डडिस्क पर) भंडार।

आप अधिक की जरूरत है, तो आप कर रहे हैं विकल्प हैं:

  • (एक कंपनी व्यापी प्रॉक्सी) की तरह एक दूरस्थ सर्वर चलाने और वहाँ सब कुछ को तैनात। उस सर्वर को अपने settings.xml में दर्पण के रूप में रखें।
  • भागो mvn install कलाकृतियों अपने स्थानीय रेपो में
  • भागो एक स्थानीय सर्वर
  • कॉपी अपने स्थानीय रेपो में कलाकृतियों मैन्युअल रूप से कॉपी करने के लिए (जाहिर है केवल जब तुम स्रोतों की क्या ज़रूरत है)
+0

एक एकल स्थानीय मेरे लिए पर्याप्त है - एक सिंगल और एक रिमोट मेवेन रेस्पॉजिटरी, कई स्थानीय मैवेन रिपोजिटरी नहीं – Cengiz

+0

उस स्थिति में, अपना प्रश्न संपादित करें और यह जानकारी जोड़ें: स्नैपशॉट कलाकृतियों के लिए आपको क्या त्रुटि मिलती है? –

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