2013-07-02 13 views
5

Ho alcune dipendenze nella mia webapp che ho contrassegnato come provided perché mi aspetto che vengano fornite da un server delle applicazioni (forse un ambiente di produzione fornisce queste dipendenze allo specifico le versioni). Come faccio a simularlo quando eseguo test o in sviluppo sul mio localhost usando, per esempio, gli obiettivi tomcat7-maven-plugin come run?Utilizzo del percorso classe "fornito" negli obiettivi tomcat7-maven-plug

Non riesco a vedere alcun modo per farlo senza copiare manualmente i vasi intorno. Posso vedere come usare il classpath test - c'è qualcosa di sbagliato in ciò che sto cercando di fare?

risposta

2

OK, ho trovato un modo per farlo funzionare - è ragionevole ma c'è una duplicazione di informazioni sulle dipendenze e un profilo magico ... Sento che il plugin tomcat7-maven dovrebbe fornire un modo per fornire dipendenze disponibili nel contenitore durante l'esecuzione.

Aggiungere un profilo che viene attivato quando viene eseguito il plug-in del tomcat e aggiungere le dipendenze con ambito provided con ambito compile a tale profilo, ad es.

... in project pom ... 
<dependencies> 
    <dependency> 
    <groupId>com.mycompany</groupId> 
    <artifactId>my-provided-artifact</artifactId> 
    <version>1.2.3</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
... 
<profiles> 
    <profile> 
    <!-- profile activated as cli param when tomcat7 plugin runs --> 
    <id>tomcat</id> 
    <dependencies> 
     <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>my-provided-artifact</artifactId> 
     <version>1.2.3</version> 
     <scope>compile</scope> 
     </dependency> 
    </dependencies> 
    </profile> 
</profiles> 
0

posso utilizzare, per esempio, questo:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
     <path>/myApp</path> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.2.0.3</version>      
     </dependency> 
    </dependencies> 
</plugin> 

e quindi comprendono anche la dipendenza in seguito usando disponibile.