2009-11-05 5 views
13

जब मैवेन एक जेएआर फ़ाइल बनाता है, तो यह मॉड्यूल की पीओएम फाइल को अंदर रखता है (प्रतीत होता है कि निर्देशिका < ग्रुपिड >/< आर्टिफैक्टिड >) में है।पीओएम फ़ाइल का महत्व क्या है जो मैवेन एक जेएआर फाइल में रखता है, क्या इसका उपयोग किसी भी चीज से किया जाता है?

जब मैं चींटी से एक जार फ़ाइल Maven चींटी कार्यों के माध्यम से तैनात किया जाना निर्माण, इस पोम फ़ाइल (जार के अंदर एक) महत्वपूर्ण की उपस्थिति है? ऐसा प्रतीत नहीं होता है, लेकिन मैं बस यह सुनिश्चित करना चाहता था कि इसका कहीं भी उपयोग नहीं किया जा रहा है, और पुष्टि करने के लिए कि वास्तव में जेएआर फ़ाइल में यह कहां होना चाहिए।

उत्तर

16

pom.xml और pom.properties फाइलें जेएआर में पैक की गई हैं ताकि मेवेन द्वारा उत्पादित प्रत्येक आर्टिफैक्ट स्वयं वर्णन कर रहा हो और आपको अपने आवेदन में मेटाडेटा का उपयोग करने की अनुमति भी देनी चाहिए, आवश्यकता होनी चाहिए। आपके आवेदन के संस्करण को पुनः प्राप्त करने के लिए एक सरल उपयोग हो सकता है।

जिसके अनुसार, इन फ़ाइलों के शामिल किए जाने अगर MavenArchiverConfiguration जो एक बूलियन addMavenDescriptor पैरामीटर मानते हैं के माध्यम से वांछित निष्क्रिय किया जा सकता है और यह सुरक्षित है उन्हें शामिल नहीं करने के लिए (भले ही मैं इसे अच्छा उन्हें शामिल करना होता है)। एक जार के लिए उदाहरण के लिए:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
      <archive> 
      <addMavenDescriptor>false</addMavenDescriptor> 
      </archive> 
     </configuration> 
     </plugin> 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

इन फ़ाइलों के स्थान के बारे में, addMavenDescriptor के प्रलेखन का कहना है:

उत्पन्न संग्रह इन दो Maven फ़ाइलें शामिल होंगी या नहीं:

  • पोम फ़ाइल, में META-INF/maven/${groupId}/${artifactId}/pom.xml
  • एक pom.properties फ़ाइल संग्रह में स्थित है, ०१२३७४७५५३१ में संग्रह में स्थित

डिफ़ॉल्ट मान सत्य है।

यह आपके सवाल का जवाब चाहिए।

+0

"पीओएम.एक्सएमएल और पोम.प्रोपर्टीज फाइलों को जार में पैक किया जाता है ताकि मेवेन द्वारा उत्पादित प्रत्येक आर्टिफैक्ट स्वयं वर्णन कर रहा हो और आपको अपने आवेदन में मेटाडेटा का उपयोग करने की इजाजत मिलती है, क्या आवश्यकता उत्पन्न होनी चाहिए" - कर सकते हैं आप मुझे उदाहरण देते हैं कि मेरे ऐप को पोम फ़ाइल में मेटाडाटा क्यों चाहिए? –

3

जार के अंदर pom.xml निम्नलिखित प्रयोजनों के लिए बनाया गया है,

  1. स्वचालित निर्भरता संकल्प।
  2. जार की तैनाती। स्वचालित रूप से JAR से pom.xml निकालना संभव है।
  3. भंडार से एकीकरण जांच (जार पोम मेल खाता है)।

मैं अगर इनमें से कोई विशेषता कहीं भी कार्यान्वित कर रहे हैं पता नहीं है। आप निश्चित रूप से इसे अनदेखा कर सकते हैं।

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

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