2015-05-20 6 views
9

मैं एक निष्पादन योग्य जार बनाने के लिए मेवेन-शेड-प्लगइन का उपयोग कर रहा हूं। मैं प्लगइन को लक्षित निर्देशिका में एक एकल जार (foo.jar) बनाने की अपेक्षा करता हूं। हालांकि यह दो अन्य जार भी बनाएगा: original-foo.jar और foo-shaded.jarमैवेन-शेड-प्लगइन के लिए अतिरिक्त जार अक्षम करें

यह उन फ़ाइलों को क्यों बनाता है और मैं इस व्यवहार को कैसे अक्षम कर सकता हूं?

(हम जानते हैं कि प्लगइन है, जहां उन फ़ाइलों को नहीं बनाई गई हैं का उपयोग कर एक अन्य परियोजना है। इसलिए मैं बहुत यकीन है कि यह उन निष्क्रिय करने के लिए संभव है, लेकिन मैं अंतर नहीं देख सकता था।)

उत्तर

1

आप एक बार देख ले सकते हैं maven-shade-plugin दस्तावेज़ीकरण में जो आपको shadedArtifactAttached विकल्प प्रदान करेगा जो आपके द्वारा वर्णित व्यवहार को नियंत्रित करेगा।

<plugin> 

     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 

     ... 

     <configuration> 
      <outputFile>/tmp/watchdog.jar</outputFile> 
     </configuration> 

</plugin> 

अधिक जानकारी में:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.3</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <shadedArtifactAttached>false</shadedArtifactAttached> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
+3

इससे 'foo-shaded.jar से छुटकारा पाने के 'फ़ाइल, लेकिन' original-foo.jar' फ़ाइल अभी भी जेनरेट की गई है। मैं भी उत्सुक हूं कि अन्य प्रोजेक्ट उपरोक्त कॉन्फ़िगरेशन को खोने के बावजूद 'foo-shaded.jar' क्यों उत्पन्न नहीं करता है। – michas

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