जब मैं विकास कर रहा हूं मुझे अक्सर निर्भरता को बदलने की आवश्यकता होती है, लेकिन मैं अपने परिवर्तनों को तैनात करने के लिए तैयार नहीं हूं। उदाहरण के लिए, मैं प्रोजेक्ट फू पर काम कर रहा हूं और मुझे एहसास है कि मुझे सामान्य पुस्तकालय में एक विधि जोड़ने की जरूरत है। इस परिवर्तन को हमारे आंतरिक भंडार में तैनात करने से पहले, मैं सामान्य पुस्तकालय में परिवर्तन स्थापित करना चाहता हूं (mvn install
) और स्थानीय भंडार में सामान्य लाइब्रेरी का उपयोग करने के लिए Foo को पुन: संकलित करना (ध्यान दें कि मैं सभी स्नैपशॉट संस्करणों का उपयोग कर रहा हूं)।मैवेन मेरे स्थानीय भंडार से पहले मेरे आंतरिक भंडार का उपयोग क्यों करता है?
हालांकि, mvn install
मेरे सामान्य पुस्तकालय के बाद, जब मैं फू को पुन: संकलित करता हूं तो यह नई आम पुस्तकालय का उपयोग नहीं करता है - यह आंतरिक भंडार में सामान्य पुस्तकालय के नवीनतम स्नैपशॉट का उपयोग करता रहता है। अगर मैं बदली हुई आम पुस्तकालय को तैनात करता हूं, तो फू इसे तुरंत उठाता है।
मैं स्थानीय भंडार में पहली बार देखने के लिए मेवेन कैसे प्राप्त कर सकता हूं?
अपडेट: जब फ़ाइल स्थानीय भंडार में स्थापित होती है, तो इसे foo-1.0.0-SNAPSHOT.jar
जैसे नाम मिलते हैं, लेकिन जब मैं इसे तैनात करता हूं, तो यह टाइमस्टैम्प foo-1.0.0-20111104.191316-23.jar
मिलता है। मुझे लगता है कि यही कारण है कि रिमोट आर्टिफैक्ट हर बार खींच लिया जाता है। कोई विचार क्यों mvn install
mvn deploy
जैसा काम नहीं कर रहा है? क्या इस तथ्य के साथ यह करना है कि मेरे पास तैनाती के लिए एक स्नैपशॉट रिपोजिटरी स्थापित है?
क्या आपके पास अपने [settings.xml] (http://maven.apache.org/settings.html) में 'लोकल रिपोजिटरी' है जो एक अस्तित्वहीन स्थान पर इंगित करता है? – millhouse
अपनी सिस्टम तिथि की तुलना अपने आंतरिक रेपो (उदा। नेक्सस) सिस्टम की तारीख से करें। यदि यह एक लंबा सफर तय है, तो इसके टाइमस्टैम्प – millhouse