के साथ स्मारक मूल निर्भरता हैंडलिंग मैं वर्तमान में मेवेन का उपयोग करने के लिए एक बड़े बहु-मॉड्यूल प्रोजेक्ट (~ 100 उप-मॉड्यूल) को परिवर्तित करने के बीच में हूं। वर्तमान में हम चींटी + आइवी का उपयोग करते हैं।मेवेन
अभी तक कोई बड़ा मुद्दा सामने नहीं आया है और मुझे आराम है कि मेवेन अभी भी एक अच्छा फिट है। हालांकि, मुझे आश्चर्य है कि मूल निर्भरताओं को संभालने का एक बेहतर तरीका है या नहीं।
अब तक मैं निम्नलिखित निष्कर्षों पर आया हूं।
- प्रत्येक मूल निर्भरता को मैवेन रेपो में या तो स्टैंडअलोन लाइब्रेरी या एकाधिक निर्भरताओं वाले संग्रहित पैकेज के रूप में स्थापित करना सबसे अच्छा है।
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>copy</id> <phase>compile</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeScope>runtime</includeScope> <includeClassifiers>natives-win32</includeClassifiers> <outputDirectory>${project.build.directory}/natives</outputDirectory> </configuration> </execution> </executions> </plugin>
से प्रत्येक और Maven निर्भरता प्लगइन के साथ हर निर्भरता की घोषणा में खो बल्कि, मैं हर एक वर्गीकारक (जैसे मूल निवासी-Win32) देने के लिए और माता पिता के पोम में निम्न का उपयोग का विकल्प चुना
अब तक यह एक साधारण ऑल-राउंड समाधान प्रतीत होता है जिसे नई मूल निर्भरताओं को जोड़ने के बारे में बहुत अधिक गड़बड़ की आवश्यकता नहीं होती है। यह मुझे मूल निवासी के प्रबंधन के लिए एक सरल ऑल-राउंड समाधान भी प्रदान करता है। मुझे केवल एक चीज यह सुनिश्चित करना है कि मेरे/मूल/निर्देशिका को java.library.path पर परिभाषित किया गया है।
एक चीज जो मुझे इस दृष्टिकोण के बारे में परेशान करती है (एक छोटी) यह है कि मेरी सभी मूल निर्भरताओं को प्रत्येक उप-मॉड्यूल में प्रतिलिपि मिलती है जो उन पर एक पारस्परिक निर्भरता व्यक्त करती है, जबकि मेरी खुश जार पुस्तकालयों को संदर्भित वर्गपाथ में जोड़ा जाता है जहां वे मेरे स्थानीय भंडार में बैठते हैं (कोई प्रति आवश्यक नहीं है)।
क्या इसके बारे में बेहतर होने का कोई तरीका नहीं है और मेरे मूल निवासी को उनके भंडार स्थान से संदर्भित किया गया है (मान लीजिए कि मैंने उन्हें संग्रहीत नहीं किया है, यानी डीएल)। इससे अनावश्यक प्रतिलिपि का एक समूह बचाएगा।
क्या कोई अन्य संभावित गठिया है कि मुझे उपर्युक्त दृष्टिकोण के बारे में चिंतित होना चाहिए?
आपने आइवी के माध्यम से इसे कैसे हल किया? जिस तरह से आपने वर्णन किया है? – khmarbaise
ऐसा लगता है कि यह हमारी आइवी कॉन्फ़िगरेशन के साथ काफी खराब हो गया है। सबसे पहले, ग्रहण के लिए डीबग/रन कॉन्फ़िगरेशन रनटाइम निर्भरताओं को एक साझा भंडार में प्रत्येक व्यक्ति को संदर्भित करके सेटअप करें जो प्रत्येक डेवलपर मशीन पर मैप की गई निर्देशिका है। जब तैनात या परीक्षण किया जाता है, तो चींटी स्क्रिप्ट खत्म हो जाती हैं और निर्भरता को आवश्यकतानुसार ले जाती हैं। यह काफी गड़बड़ है। – S73417H
हमम, मुझे आपका समाधान पसंद है।लगता है कि आप वास्तव में क्या चाहते हैं निर्भरता प्लगइन के लिए एक अतिरिक्त लक्ष्य है जो एक संपत्ति को हल निर्भरताओं की पथ सूची के रूप में सेट करता है। यह पहेली में अंतिम टुकड़ा होगा। आसान होना चाहिए, क्यों एक पैच पर एक स्टैब नहीं लेना चाहिए? अगर आप ऐसे पैच लिखने में सफल होते हैं तो मुझे पिंग करें और मैं इसे लागू करने पर एक नज़र डालेगा। –