2012-06-14 12 views
5

Ho un progetto di webav (guerra) maven3 che ha 2 dipendenze. Uno è un jar (ehcache) e l'altro una dipendenza da guerra (una lib di terze parti su cui non ho alcun controllo).Come rimuovere il file .jar da una guerra che è sovrapposta dalla dipendenza di Maven

La dipendenza di terze parti dipende dalla versione molto precedente di ehcache che si scontra con la versione successiva che è necessario utilizzare.

I seguenti passaggi si verificano durante un pacchetto della mia app.

  1. mio vaso EHCache viene copiato/WEB-INF/lib/
  2. La dipendenza .war che comprende anche EHCache è costruito e sovrapposto sulla parte superiore del mio obiettivo
  3. di file .war finale è creato dal bersaglio

Non importa quello che faccio, la guerra include sempre la versione precedente di ehcache. Ho anche provato a scrivere uno script ant che eseguo tramite il plugin maven-antrun che rimuove il file .jar dalla directory di destinazione. Tuttavia, questo viene sempre fatto prima che la dipendenza .war venga sovrapposta.

Qualcuno sa come posso escludere/rimuovere la versione precedente di ehcache?

+0

Hai una dipendenza da una guerra? Hai una build multi-modulo? – khmarbaise

risposta

8

Probabilmente avrete bisogno di escludere il vaso ehcache dal nome file dall'overlay. Se non si è già dichiara un overlay esplicita per la tua guerra dipendente, dovrete fare anche nella configurazione del plugin di guerra:

<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

Grazie, questo fa esattamente quello di cui avevo bisogno. – Joel

Problemi correlati