मान लीजिए, मैं एक खुला स्रोत परियोजना है कि कुछ पुस्तकालय पर निर्भर करता है है, इसी क्रम में कुछ मुद्दों को ठीक करने के लिए समझौता किया जाना चाहिए। मैं उसको कैसे करू? मेरे विचार हैं:एक लेआउट
- क्या लाइब्रेरी स्रोत मॉड्यूल के रूप में स्थापित हैं, उन्हें मेरे वीसीएस में रखें। पेशेवर: सरल। विपक्ष: मेरे रेपो में किसी तीसरे पक्ष स्रोतों, (हालांकि README में तय किया जा सकता है)
- 1 में की तरह, एक मॉड्यूल है, लेकिन केवल समझौता स्रोत फ़ाइलों को रखना एक समझौता जगह खोजने के लिए निर्माण प्रक्रिया को धीमा हो सकता है, कठोर, उन्हें संकलन क्लासपाथ में ऑरगिनल लाइब्रेरी जार के साथ और किसी भी तरह से लाइब्रेरी जार में * .class फ़ाइलों को प्रतिस्थापित करें। पेशेवर: पैच किए गए स्थानों को ढूंढने में तेज़ी से, आसान बनाता है। विपक्ष: कठिन कॉन्फ़िगर करने के लिए, कि जार hackery अस्पष्ट (भंडार में और अपने प्रोजेक्ट विधानसभा में पुस्तकालय जार अलग होगा)
- रखें मुख्य/संसाधनों में समझौता * .class फ़ाइलों, और 2 में की तरह पैकेजिंग पर प्रतिस्थापित करें)। पेशेवर: लगभग कोई नहीं। विपक्ष: वीसीएस में द्विआधारी, पैच संकलन के रूप में एक पैच किए गए वर्ग को पुन: संकलित करना मुश्किल नहीं है।
एक अच्छा समाधान पैच किए गए लाइब्रेरी स्रोतों के साथ एक विशिष्ट प्रोजेक्ट बनाना है, और इसे स्थानीय/एंटरप्राइज़ रिपोजिटरी पर-साथ समर्थित क्वालीफायर पर तैनात करना है। लेकिन यह एक ओपनोरस्ड प्रोजेक्ट के लिए उपयुक्त नहीं होगा जिसका अर्थ किसी भी व्यक्ति द्वारा आसानी से निर्मित किया जा सकता है जो इसके स्रोतों की जांच करता है। या मुझे बस यह कहना चाहिए "और, मेरी परियोजना बनाने से पहले, कृपया उस सामान को देखें और एमवीएन इंस्टॉल करें"।
+1 अच्छा अतिरिक्त नोट्स –