2010-02-01 8 views
10

Ich versuche, Integrationstests für ein Maven-Projekt einzurichten, das eine Kriegsdatei erzeugt. (Wie hier zu sehen http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin/.) Allerdings benötigt die WAR-Datei eine Reihe von .properties-Dateien auf dem Klassenpfad, die ich nicht im Krieg bündeln möchte.Klassenpfad zum Steg hinzufügen, der in Maven-Integrationstest läuft

Gibt es eine Möglichkeit (vorzugsweise durch Plugin-Konfiguration), einen Ordner zum Klassenpfad hinzuzufügen, der von Jetty verwendet wird?

Ich googelte dies und fand http://markmail.org/message/awtqrgxxttra3uxx aber das, soweit ich das beurteilen kann, funktioniert überhaupt nicht. Die .properties-Dateien werden nicht gefunden.

Antwort

21

Dies sollte das webAppConfig Konfigurationselement (unten Probe aus this thread genommen) möglich sein, mit:

<webAppConfig> 
    <contextPath>/nportal</contextPath> 
    <!-- All I want to do here is add in the /etc/jetty/classes for runtime files. For some reason I have to also add back in the /target/classes directory --> 
    <extraClasspath>${basedir}/target/classes/;${basedir}/etc/jetty/classes/</extraClasspath> 
</webAppConfig> 
+0

Eine andere vielleicht mehr marginal ist ' Anlegesteg-context.xml' 'wo Anlegesteg-context.xml' konfiguriert'

16

Wenn Sie, dass die oben genannten Lösung finden nicht für Sie arbeiten, in der Anlegestelle einschließlich dem Test Classpath betrachten Aufbau.

<configuration> 
    <useTestClasspath>true</useTestClasspath> 
    ... 
</configuration> 

Dies wird dann können Sie alle Arten von Ressourcen/Klassen auf dem Test Classpath platzieren und sie sichtbar auf den Jetty-Server haben, ohne sie in den Produktionscode kriecht.

+13

wenn Benutzer der Version 7+ nach einer Antwort suchen , der neue Name der Option ist ''. Mehr unter http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin#Configuring_additional_parameters – uiron

5

Sie können zusätzliche Konfigurationsdateien unter /src/test/resources platzieren und eine Eigenschaft <useTestScope>true</useTestScope> in der Plugin-Konfiguration wie here angegeben:

useTestScope

Wenn das stimmt, die Klassen aus testClassesDirectory und Abhängigkeiten von scope „Test "werden zuerst auf den Klassenpfad gesetzt. Standardmäßig ist dies falsch.

+0

Oh, es gibt bereits einen Kommentar mit dem gleichen Link ... Ich werde die verlassen Antwort - es ist auffälliger. – Innokenty

+0

Funktioniert nicht für mich. Jetty startet die Ausgabe: [INFO] --- jetty-maven-plugin: 9.3.7.v20160115: start (start-jetty) @ someapp - - [INFO] Konfigurieren von Jetty für Projekt: Verizon CHC Timer Server [INFO] webAppSourceDirectory nicht festgelegt. Trying src/main/webapp [INFO] Mechaniker neu laden: automatisch [INFO] Klassen =/Benutzer/mvmn/wrkdir/someapp/target/Klassen 2016-03-01 15: 27: 55.704: INFO :: main: Protokollierung initialisiert @ 4023ms [INFO] Context path =/ [INFO] tmp =/Users/mvmn/WRKDIR/SomeApp/target/tmp [INFO] Web defaults = org/eclipse/Anlegestelle/webapp/webdefault.xml [ INFO] Web Overrides = keine ... – mvmn

+1

Funktioniert bei mir auch nicht. Bearbeiten: Arbeitet mit Version> = 7.0.0 – adrianboimvaser

Verwandte Themen