ठीक है, मैं सोचा मैं समझ गया Maven का उपयोग कैसे करें ...मैं एक मेवेन मॉड्यूल कैसे दूसरे पर निर्भर कर सकता हूं?
मैं एक मास्टर परियोजना M
जो उप-परियोजनाओं A
, B
, और C
है की है। C
में कुछ सामान्य कार्यक्षमता (मुख्य रूप से इंटरफेस) शामिल हैं जिन्हें A
और B
द्वारा आवश्यक है। मैं प्रोजेक्ट रूट निर्देशिका (M
निर्देशिका) से mvn compile jar:jar
चला सकता हूं और JAR फ़ाइलें A.jar
, B.jar
, और C.jar
प्राप्त कर सकता हूं। ताकि A
और B
सिर्फ एक संदर्भ सहित, इसलिए तरह से C
संदर्भित कर सकते हैं, (इन सभी कलाकृतियों के लिए संस्करण वर्तमान में 2.0-SNAPSHOT
कर रहे हैं।)
M
निर्देशिका सूचियों C
अपने <dependencyManagement>
टैग के तहत में मास्टर pom.xml
फ़ाइल:
<dependency>
<groupId>my.project</groupId>
<artifactId>C</artifactId>
</dependency>
अभी तक, बहुत अच्छा है। मैं कमांड लाइन से mvn compile
चला सकता हूं और सब कुछ ठीक काम करता है। लेकिन जब मैं नेटबीन में प्रोजेक्ट खोलता हूं, तो यह समस्या से शिकायत करता है: "कुछ निर्भरता कलाकृतियों स्थानीय भंडार में नहीं हैं", और यह कहता है कि गायब आर्टिफैक्ट C
है। इसी प्रकार कमांड लाइन से, यदि मैं A
या B
निर्देशिका में बदलता हूं और mvn compile
चलाने की कोशिश करता हूं तो मुझे "बिल्ड त्रुटि: आर्टिफैक्ट को हल करने में विफल" मिलता है।
मैं मैं मैन्युअल रूप से जहाँ मेरे C.jar
बनाया गया था करने के लिए जाने के लिए और mvn install:install-file
चला सकते हैं उम्मीद है, लेकिन मैं नहीं बल्कि एक समाधान है कि मुझे बस NetBeans (और/या m2eclipse का उपयोग कर ग्रहण में) में सीधे काम करने के लिए सक्षम बनाता है पाते हैं।
मैं क्या गलत कर रहा हूं?
धन्यवाद। मुझे पता था कि 'एमवीएन संकलन' के बजाय 'एमवीएन पैकेज' का उपयोग करने के बारे में, लेकिन अनुस्मारक के लिए धन्यवाद। हालांकि, wiki.netbeans.org पर "मेवेन बेस्ट प्रैक्टिस" लिंक विशेष रूप से उपयोगी था, इसलिए मैं इस उत्तर को स्वीकार करने के रूप में चिह्नित कर रहा हूं। –
@ डैनियल आपका स्वागत है। लेकिन साइड नोट 'एमवीएन पैकेज' बनाम 'एमवीएन जार: जार' के बारे में अधिक था :) खुशी है कि आपने लिंक को उपयोगी पाया है। –
क्या माता-पिता के 'compile' के हिस्से के रूप में मॉड्यूल के' इंस्टॉल' को चलाने के लिए संभव है? –