2012-04-25 13 views
21

मैं के साथ मेरी Maven आधारित स्प्रिंग एप्लिकेशन पैकेज में डुप्लिकेट pom.xml और pom.properties फ़ाइलें उत्पन्न करता है। जेनरेटेड जार के मेटा-आईएनएफ में, मुझे डुप्लिकेट pom.xml और pom.properties फ़ाइलें मिलती हैं। क्या कोई इसे समझा सकता है? धन्यवाद।Maven एक जार

enter image description here

यहाँ आदेश के लिए pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.abc.xyz</groupId> 
<artifactId>migrate-app</artifactId> 
<packaging>jar</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>migrate-app</name> 
<url>http://maven.apache.org</url> 
<dependencies> 

.. 

</dependencies> 

<profiles> 
    <profile> 
    <id>everything</id> 
    <build> 
     <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <source>1.5</source> 
      <target>1.5</target>   
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.5</version> 
     <configuration> 
      <skipTests>true</skipTests> 
     </configuration> 
     </plugin>    
     </plugins> 
    </build> 
    </profile> 
    </profiles> 

आउटपुट निकाला जाता है:

mvn -version 

अपाचे Maven 3.0.4 (r1232337; 2012-01-17 15: 44: 56 + 0700) मेवेन होम: सी: \ apache-maven-3.0.4 \ bin .. जावा संस्करण: 1.6.0_30, विक्रेता: एस अन माइक्रोसिस्टम्स इंक जावा होम: सी: \ प्रोग्राम फ़ाइलें (x86) \ जावा \ jdk1.6.0_30 \ jre डिफ़ॉल्ट लोकेल: en_US, प्लेटफ़ॉर्म एन्कोडिंग: सीपी 1252 ओएस नाम: "विंडोज 7", संस्करण: "6.1", मेहराब: "86", परिवार: "खिड़कियों"

+0

क्या आप यहां "mvn -version" के लिए आउटपुट लिख सकते हैं? –

+0

मैंने आउटपुट जोड़ा है। – bnguyen82

+0

धन्यवाद। मैं भी इसके लिए खोज करूंगा। मैं यहां एमवीएन संस्करण 3 चलाता हूं और मेरा वही व्यवहार था। जार के अंदर डबल फाइलें। –

उत्तर

-5

सुनिश्चित नहीं हैं कि duplicate से क्या मतलब है, लेकिन जार Maven द्वारा बनाई META-INF फ़ोल्डर में pom.xml और pom.properties के साथ आता है। मेवेन शुरू करने की मार्गदर्शिका this section देखें।

+0

मेरा मतलब है कि दो pom.xml फ़ाइलें और दो pom.properties फ़ाइलें हैं। – bnguyen82

+0

जार अभिलेखागार एक ज़िप प्रारूप पर आधारित हैं (वास्तव में, आप ज़िप उपयोगिताओं के साथ जार संग्रह में हेरफेर कर सकते हैं) जो कि संग्रह में डुप्लिकेट प्रविष्टियों की अनुमति देता है। निष्कर्षण प्रक्रिया के दौरान एक ही नाम वाली प्रविष्टियां बस अधिलेखित की जाती हैं। जब आप एक्लिप्स/एम 2 कॉम्बो के साथ निर्मित जार फ़ाइल का निरीक्षण करते हैं तो आपको वर्णित फाइलों के लिए सचमुच डुप्लिकेट प्रविष्टियां दिखाई देगी। वास्तव में कष्टप्रद यह है कि यह जार cmdline उपकरण तोड़ता है (आप किसी भी फ़ाइल को अपडेट नहीं कर सकते हैं) –

13

ऐसा लगता है कि यह कुछ सामान्य समस्या है जो एक्लिप्स में एक संघर्ष से उत्पन्न होती है, खासकर m2e-wtp एकीकरण के साथ।

कुछ लोग संकेत दे रहे हैं कि इसे चलाने के लिए लक्ष्यों की सूची में स्वच्छ शामिल करके तय किया जा सकता है, उदा। mvn clean package

इसके अलावा अपने m2e स्थापना को अद्यतन करने और सुनिश्चित करें कि आप m2e या m2eclipse (पूर्व इंडिगो संस्करण) स्थापित एक से अधिक संस्करण की जरूरत नहीं है बनाने के लिए प्रयास करें।

+0

मैंने मैवेन-आर्काइवर प्लगइन पर समस्या को ट्रैक करने के लिए http://jira.codehaus.org/browse/MSHARED-324 खोला। मेवेन में एक फिक्स देखने में रुचि रखने वाले किसी को भी इसके लिए वोट देना चाहिए। –

+0

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

6

मैं जानता हूँ कि इस मुद्दे को थोड़ा पुराना है, लेकिन मैंने सोचा था कि:

अन्य लोगों को इस समस्या का सामना करना पड़ के लिए कुछ संदर्भों मैं इस विषय पर एक अस्पष्ट जानकारी साझा करना चाहता हूं । मैं एक ही मुद्दे पर दौड़ रहा था, और मैंने पाया कि जब मैंने एक्लिप्स खोलने के साथ मेवेन चलाया, और मेरी वर्कस्पेस वरीयताओं को देशी हुक या मतदान का उपयोग करके वर्कस्पेस को रीफ्रेश करने के लिए सेट किया गया था, अतिरिक्त pom.xml और pom.properties फ़ाइलों को ग्रहण द्वारा जोड़ा गया था ! ग्रहण बंद करना या रीफ्रेश वर्कस्पेस विकल्प को हटाने से मेरे लिए समस्या हल हो गई। यह ट्रैक करने के लिए एक कठिन था, इसलिए उम्मीद है कि किसी और से इसका फायदा होगा।

14

अपने pom.xml

+0

यह मेरे लिए काम किया। लेकिन, क्या आप समझा सकते हैं क्यों? – spoulson

+0

मेवेन बिल्ड मेटा-आईएनएफ फ़ोल्डर में मेवेन फाइलों को जोड़ता है। यदि आप एक एप्लेट या इसी तरह की परियोजना विकसित कर रहे हैं, तो यह एक समस्या है। addMavenDescriptor संपत्ति झूठी जब जार से मेवेन फाइलों को छोड़ देता है। – besc

+0

बस एक एपलेट युक्त एक परियोजना के साथ इस त्रुटि में भाग गया। यह स्पष्ट रूप से m2e से संबंधित है। आखिरकार मैंने मेवेन डिस्क्रिप्टर को हटा दिया जो कि उस बग के लिए एकमात्र समाधान है ... -यहें – Rob

0

को

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
     <archive> 
      <addMavenDescriptor>false</addMavenDescriptor> 
     </archive> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

जोड़े चारों ओर दान के काम करने के लिए @ का पालन करें:

मैं अपने समाधान की कोशिश की और यह प्रकट होता है काम करने के लिए - पहले लाल पर। हालांकि, यह केवल अंतिम विफलता में देरी कर रहा है।

यह किसी भी समय वर्कस्पेस को pom.xml और pom.properties फ़ाइलों को रीफ्रेश किया जाता है/कक्षा निर्देशिका में बनाए जाते हैं। उसके बाद किसी भी "पैकेज" लक्ष्य में .jar में डुप्लिकेट फ़ाइलें शामिल होंगी और इस प्रकार बाद में किसी भी हस्ताक्षर को तोड़ दिया जाएगा।

यदि मतदान चालू है - तो आप "असफल-तेज" हैं। यदि यह बंद है तो आप भविष्य में निर्माण में मनमाने ढंग से समय पर असफल हो सकते हैं।

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