2015-10-01 9 views
5

से मेटा-आईएनएफ/मेवेन फ़ोल्डर को बाहर निकालें, मैं एक जार फ़ाइल बनाने की कोशिश कर रहा हूं जिसमें जार के भीतर निकाले गए सभी आवश्यक वर्ग हैं। लेकिन log4j जैसे कुछ निर्भर जार के लिए, यह META-INF/maven/* के अंदर कुछ फ़ोल्डर्स बनाता है। मेरे पास एक सीमा है कि जिस सर्वर में मैं जेनरेट की गई जार फ़ाइल रखूंगा, उसमें इंटरनेट कनेक्टिविटी नहीं होगी। तो अगर इस META-INF/maven/* फ़ोल्डर में कोई सामग्री है तो यह मुझे एक त्रुटि देता है।जेनरेटेड जार फ़ाइल

मेरे Maven वर्णनकर्ता निम्नलिखित

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <addMavenDescriptor>false</addMavenDescriptor> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <minimizeJar>true</minimizeJar> 
       <finalName>myclient</finalName> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

मैं उत्पन्न जार में आवश्यक वर्ग फ़ाइलों को निकालने के लिए, लेकिन Maven फ़ोल्डर अभी भी META-INF अंतर्गत उत्पन्न हो रही है कर रहा हूँ की तरह लग रहा है। मुझे सबकुछ काम करने के लिए मैन्युअल रूप से फ़ोल्डर को हटाना होगा। जेनरेट की गई जार फ़ाइल से मैवेन फ़ोल्डर को हटाने के तरीके को स्वचालित करने के बारे में सलाह दें।

उत्तर

11

आप maven-shade-plugin विन्यास अंदर filters का उपयोग सब कुछ हर विरूपण साक्ष्य के लिए META-INF/maven किया जा रहा है कि बाहर करने के लिए कर सकते हैं:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <filters> 
        <filter> 
         <artifact>*:*</artifact> 
         <excludes> 
          <exclude>META-INF/maven/**</exclude> 
         </excludes> 
        </filter> 
       </filters> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

maven-jar-plugin के लिए एक समाधान here पाया जा सकता है।

+0

बहुत बढ़िया प्यार आप दोस्त :) –

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