2012-06-14 26 views
5

मेरे पास एक maven3 वेबपैप (युद्ध) प्रोजेक्ट है जिसमें 2 निर्भरताएं हैं। एक जार (एहैच) है और दूसरा एक युद्ध निर्भरता है (एक तृतीय पक्ष मुक्ति है जिसका मेरा कोई नियंत्रण नहीं है)।मैवेन निर्भरता द्वारा ओवरलैड युद्ध से .jar फ़ाइल को कैसे हटाएं

तृतीय पक्ष युद्ध निर्भरता के पास ईएचकेएच के पहले संस्करण पर निर्भरता है जो बाद के संस्करण के साथ संघर्ष कर रहा है जिसे मुझे उपयोग करने की आवश्यकता है।

निम्नलिखित चरणों में मेरे ऐप के पैकेज के दौरान होता है।

  1. मेरे ehcache जार में कॉपी किया है/वेब-INF/lib/
  2. .war निर्भरता जो भी शामिल है ehcache बनाया गया है और मेरे लक्ष्य की चोटी पर देखा जाता
  3. अंतिम .war फ़ाइल लक्ष्य से बनाया जाता है

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, युद्ध में हमेशा ehcache के पहले संस्करण शामिल होते हैं। मैंने एक एंटी स्क्रिप्ट लिखने का भी प्रयास किया है जिसे मैं maven-antrun-plugin के माध्यम से निष्पादित करता हूं जो लक्ष्य निर्देशिका से .jar फ़ाइल को हटा देता है। हालांकि, यह हमेशा से पहले किया जाता है .war निर्भरता अतिव्यापी है।

क्या कोई जानता है कि मैं ehcache के पुराने संस्करण को कैसे हटा/हटा सकता हूं?

+0

तुम एक युद्ध पर निर्भरता है? क्या आपके पास बहु-मॉड्यूल निर्माण है? – khmarbaise

उत्तर

8

आपको शायद अपने ओवरले से फ़ाइल नाम से ehcache जार को बाहर करने की आवश्यकता होगी। आप पहले से ही अपने निर्भर युद्ध के लिए एक स्पष्ट ओवरले की घोषणा नहीं कर रहे हैं, तो आप करना होगा और वह भी युद्ध प्लगइन विन्यास में:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.2</version> 
     <configuration> 
     <overlays> 
      <overlay> 
      <groupId>your.thirdparty.war.groupId</groupId> 
      <artifactId>your.thirdparty.war.artifactId</artifactId> 
      <excludes> 
       <exclude>WEB-INF/lib/ehcache*.jar</exclude> 
      </excludes> 
      </overlay> 
     </overlays> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+0

धन्यवाद, यह वही करता है जो मुझे चाहिए था। – Joel