2010-10-28 15 views
8

मै मैवन के लिए नया हूं और मैं सभी सुबह ट्यूटोरियल (अद्भुत उपकरण) पढ़ रहा हूं।मेवेन निर्देशिका संरचना

इस नई जावा प्रोजेक्ट को मैंने शुरू करना शुरू किया हालांकि डिफ़ॉल्ट निर्देशिका संरचना का उपयोग नहीं करता है। स्रोतों के लिए src/main/java के बजाय यह src/org/myapp जैसे कुछ का उपयोग करता है।

जब मैं परियोजना (जहां pom.xml स्थित है) मैं एक संदेश कह रही है कि कोई सूत्रों का कहना है, क्योंकि यह उन्हें खोजने के लिए सक्षम नहीं है संकलित किया गया है मिल पर mvn package चलाने (स्रोत पथ अलग किया जा रहा है)।

क्या मेवेन में अपना खुद का स्रोत पथ निर्दिष्ट करने का कोई तरीका है?

उत्तर

10

पोम फ़ाइल में build टैग करने के लिए sourceDirectory जोड़ें।

<build> 
    ... 
<sourceDirectory>src</sourceDirectory> 
    ... 
</build> 

Here मैवेन डॉक्स में प्रासंगिक अनुभाग है।

+0

लेकिन ग्रहण मेनू से एक नई परियोजना तैयार कर रहा है और इसे मैवेन के लिए एक अच्छा अभ्यास कर रहा है? – zengr

+0

मुझे नहीं लगता कि यह एक नई परियोजना है। लगता है कि वह एक मौजूदा परियोजना (एक अलग निर्देशिका संरचना के साथ) माइग्रेट करने के लिए माइग्रेट करने की कोशिश कर रहा है। लेकिन मैं गलत हो सकता था ... – dogbane

+0

@zengr, मैं ग्रहण –

1

आपने प्रोजेक्ट कैसे बनाया? एक नया मेवेन प्रोजेक्ट बनाने का विचार तरीका है: mvn archetype:create और फिर निर्देशों का पालन करें।

पढ़ें this अधिक जानकारी के

अपडेट के URL पर आधारित जवाब से विस्तार करने के लिए:

mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] 
2

सिद्धांत रूप में, आप अपने मेवेन प्रोजेक्ट के लिए एक गैर-मानक निर्देशिका संरचना का उपयोग कर सकते हैं। अभ्यास में, आप पाएंगे कि विभिन्न मेवेन प्लगइन्स और आईडीई एकीकरण ठीक से काम नहीं करेंगे। इसलिए मैं सलाह दूंगा कि आप अपनी प्रोजेक्ट निर्देशिका संरचना को पुनर्गठित करें जो मैवेन की अपेक्षा करता है ... इससे पहले कि आप बहुत सारे संस्करण नियंत्रण इतिहास और अन्य सामान प्राप्त करें जो पुनर्गठन को और अधिक दर्दनाक बना देगा।

+3

का उपयोग नहीं कर रहा हूं, मैं असहमत हूं। निर्देशिका संरचना क्या है यह जानने के लिए एक अच्छी तरह से व्यवहार प्लगइन के मानक तरीके हैं। एक प्लगइन जो 'model.getBuild() का उपयोग करता है। GetSourceDirectory() 'हमेशा स्रोत निर्देशिका पाएगा, इससे कोई फर्क नहीं पड़ता कि यह कहां है। और एक प्लगइन जो सिर्फ 'नई फ़ाइल ("src/main/java") के लिए जांचता है, शायद अन्य मामलों में भी एक बहुत खराब प्लगइन है। –

+0

लेकिन मैं यह भी मानता हूं कि यदि आपके पास विकल्प है तो मानक संरचना का उपयोग करना एक अच्छा विचार है। –

+0

@seanizer - समस्या यह है कि प्लगइन्स और अन्य सामानों को पीओएम के साथ परीक्षण करने की संभावना नहीं है जो गैर-मानक निर्देशिका संरचनाओं का उपयोग करते हैं। और आप शायद मेवेन डेवलपर्स से किसी भी बग को उजागर करने के लिए उत्साही प्रतिक्रिया प्राप्त करते हैं। –

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