2012-06-14 7 views
5

Mam projekt webmap maven3 (wojna), który ma 2 zależności. Jeden to słoik (ehcache), a drugi zależność wojenna (niezależna biblioteka, której nie kontroluję).Jak usunąć plik .jar z wojny, która jest pokryta przez zależność od maven

Uzależnienie od wojny trzeciej jest zależne od znacznie wcześniejszej wersji ehcache, która koliduje z późniejszą wersją, której muszę użyć.

Następujące kroki występują podczas pakietu mojej aplikacji.

  1. Moja ehcache słoik jest kopiowany do/WEB-INF/lib/
  2. .war zależność, która obejmuje również ehcache jest zbudowany i nałoży na szczycie mojej tarczy
  3. końcowy plik .war tworzony jest z tarczy

Bez względu na to, co robię, wojna zawsze zawiera wcześniejszą wersję ehcache. Próbowałem nawet napisać skrypt mrówki, który wykonuję za pomocą maven-antrun-plugin, który usuwa plik .jar z katalogu docelowego. Jednak zawsze robi się to przed nałożeniem zależności .war.

Czy ktoś wie, w jaki sposób mogę wykluczyć/usunąć wcześniejszą wersję ehcache?

+0

masz zależność od wojny? Czy masz budowę wielomodułową? – khmarbaise

Odpowiedz

8

Prawdopodobnie będziesz musiał wykluczyć słoik ehcache według nazwy z nakładki. Jeśli nie są już deklarując wyraźny nakładkę dla zależnego wojny, trzeba to zrobić też w konfiguracji wtyczki War:

<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

Dzięki, to robi dokładnie to, czego potrzebowałem. – Joel