2013-07-02 16 views
5

Ich habe einige Abhängigkeiten in meiner Webapp, die ich als provided markiert habe, weil ich erwarte, dass sie von einem Anwendungsserver bereitgestellt werden (möglicherweise eine Produktionsumgebung bietet diese Abhängigkeiten an der angegebenen Versionen). Wie simuliere ich das, wenn ich Tests oder in der Entwicklung auf meinem localhost unter Verwendung beispielsweise der tomcat7-maven-plugin Ziele wie run?Verwenden von "bereitgestellten" Klassenpfad in tomcat7-Maven-Plugin Ziele

Ich kann keinen Weg sehen, es zu tun, ohne manuell Gläser zu kopieren. Ich kann sehen, wie man den Klassenpfad test benutzt - ist etwas falsch mit dem, was ich versuche zu tun?

Antwort

2

OK, ich habe einen Weg gefunden, dies zum Laufen zu bringen - es ist vernünftig, aber es gibt eine Duplizierung von Abhängigkeitsinformationen und ein magisches Profil ... Ich denke, dass das tomcat7-maven-plugin ein Mittel zur Verfügung stellen sollte Abhängigkeiten, die beim Ausführen im Container verfügbar sind.

Fügen Sie ein Profil hinzu, das aktiviert wird, wenn das Tomcat-Plug-in ausgeführt wird, und fügen Sie dem Profil die Abhängigkeiten mit dem Bereich provided mit dem Bereich compile hinzu, z.

... 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

Ich benutze zum Beispiel dieser:

<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> 

und dann auch die Abhängigkeit später wieder mit zur Verfügung gestellt.

Verwandte Themen