2010-02-08 14 views
35

के साथ फ़ाइल नाम से संस्करण संख्या को हटा रहा है मेरे पास मेवेन में 5 मॉड्यूल के साथ एक प्रोजेक्ट है। अभी, जब मैं "एमवीएन क्लीन इंस्टॉल" करता हूं, तो यह दो कानों, एक युद्ध और अन्य मॉड्यूल से एक सर युक्त कान उत्पन्न करता है।मेवेन

सभी फ़ाइल नाम संस्करण, जैसे, projectx कान-2.0.0.ear, projectx-ग्राहक-2.0.0.jar, आदि

मैं जार में से एक का नाम बदलने की जरूरत है और शामिल फ़ाइल नाम में संस्करण को छोड़ने के लिए अंतिम कान। यह इस तरह दिखना चाहिए:

projectx-ear.ear 
| 
+-- projectx-client.jar 
| 
+-- projectx-misc-2.0.0.jar 
| 
+-- projectx-sar-2.0.0.sar 
| 
\-- projectx-web-2.0.0.web 

अभी मैं निर्माण करने के लिए निम्न प्लग-इन का उपयोग कर रहा: Maven-संकलक प्लगइन और Maven रिलीज-प्लगइन

प्राप्त करने के लिए सबसे अच्छा तरीका है क्या परिणाम मैं उम्मीद करता हूँ?

उत्तर

19

अपने कान मॉड्यूल में आप project.build.finalName तत्व का उपयोग कर सकते हैं या आप maven-ear-plugin जो एक finalName वैकल्पिक पैरामीटर का समर्थन करता है कॉन्फ़िगर कर सकते हैं । और एक बंडल जार के अंतिम नाम को कॉन्फ़िगर करने के लिए, आपको jarModule को परिभाषित करने और इसके लिए bundleFileName प्रॉपर्टी सेट करने की आवश्यकता होगी।

<project> 
    [...] 
    <dependencies> 
    <dependency> 
     <groupId>yourgroupid</groupId> 
     <artifactId>projectx-client</artifactId> 
     <version>2.0.0</version><!-- not mandatory if inherited --> 
    </dependency> 
    [...] 
    </dependencies> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     [...] 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <finalName>projectx-ear</finalName> 
      <modules> 
      <jarModule> 
       <groupId>yourgroupid</groupId> 
       <artifactId>projectx-client</artifactId> 
       <bundleFileName>anotherName.jar</bundleFileName> 
      </jarModule> 
      </modules> 
     </configuration> 
     </plugin> 
     [...] 
</project> 
+0

धन्यवाद, बिल्कुल मुझे क्या चाहिए! – Bani

+2

अभी तक, प्लगइन के बाद के संस्करण (मैं 2.6 का उपयोग कर रहा हूं) आपको ' 'a' no-version 'के अंदर निर्दिष्ट करने की अनुमति देता है जो आपके मॉड्यूल के संस्करण संख्या को हटा देता है (इसलिए आप उनमें से प्रत्येक को परिभाषित करने की ज़रूरत नहीं है)। हालांकि, कान का नाम इससे प्रभावित नहीं होता है। – SJuan76

82

आप इस तरह अपने पोम में finalName संपत्ति निर्दिष्ट करने के द्वारा इस लक्ष्य को हासिल कर सकते हैं:

<build> 
    <finalName>${project.artifactId}</finalName> 
</build> 
+0

वर्क्स एक आकर्षण की तरह:

अंतिम विन्यास हो सकता है (मैं कैसे यहाँ प्लगइन विन्यास में अंतिम कान नाम सेट करने का प्रदर्शन करेंगे) ऐसा ही कुछ लग रहा है। धन्यवाद! –

+0

इस तरह के एक लाइन के जवाब के कारण मुझे स्टैक ओवरफ्लो पसंद है :) धन्यवाद! – lord5et