2008-12-15 12 views

Antwort

15
+6

Der hinzuzufügende Code ist: im Konfigurations-Tag des maven-war-plugins artifactId – techzen

+0

Wie könnte man das machen, wenn der Ordner webapps ist auf einem entfernten Server (zB könnte es über SCP kopieren?). Ich versuche das mit der Maven-Wagen-SSH-Bibliothek zu tun, und es funktioniert fast, aber ich kann nicht herausfinden, wie ich kontrollieren kann, welche Dateien gesendet werden und wohin sie gehen. – iX3

7

Sie können http://cargo.codehaus.org/Deploying+to+a+running+container verwenden und entsprechend konfigurieren.

+0

Die Bereitstellung auf einen ist einfach! :) Die Bereitstellung auf zwei ist schwierig. :((sofern Sie den deploy-Befehl nicht zweimal ausführen) http://stackoverflow.com/questions/732275/maven-deploy-to-multiple-tomcat-servers – cgp

6

Sie können sich auch das Jetty-Plugin ansehen. Tippe einfach "mvn jetty: run-war" und der Steg sollte deine Kriegsakte starten.

Edit: Jetty ist ein leichter Servlet Container geeignet für Entwicklung und Test. Es ist auch blitzschnell zu starten.

+0

Ich möchte die WAR-Datei nicht ausführen. Ich möchte sie platzieren im Webapps-Verzeichnis von Tomcat, anstatt es manuell tun zu müssen – l15a

3

Nicht ideal, aber wenn man eine wirklich seltsame App-Server eingerichtet haben, können Sie immer eine antrun Aufgabe verwenden gesetzt auszuführen, wenn die Verpackung

<build> 
    .... 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
      <execution> 
       <phase>package</phase> 
       <configuration> 
       <tasks> 
        <!-- Ant copy tasks go here --> 
       </tasks> 
       </configuration> 
       <goals> 
       <goal>run</goal> 
       </goals> 
      </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    </build> 
5

Alternativ ausgeführt wird, könnten Sie tomcat in Ihrem Ziel haben aussehen Verzeichnis und deploy direkt von dort.

In Ihrem context.xml oder die server.xml Context-Elemente:

<Context path="" docBase="/path/to/target/exploded"> 
... 
</Context> 

Dann können Sie den Krieg benutzen explodierte Ziel Ihren explodierte Krieg zu schaffen.

+0

Können Sie mehr Informationen darüber geben, wie dies eingerichtet wird.Ich habe dies in der Vergangenheit getan, aber Google hat Probleme beim Auffinden von Beispielkonfigurationen. – Drew

+0

Diese Antwort zu verbessern. Obwohl viele der andere Wege arbeiten, das war bei weitem die schnellste für mich (1.5min Build vs 7min mit dem nächst schnellsten Ansatz) – samspot

55
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>U:\JBoss6\server\default\deploy\</outputDirectory> 
      </configuration> 
     </plugin> 

Sobald Sie es zu Ihrem pom.xml hinzugefügt haben, können Sie die WAR-Datei kopieren, indem Sie Rufen mvn package oder mvn war:war.

+3

du bist schön, danke. Deshalb liebe ich SO. Die Leute harpfen über die Verwendung von Google, aber das ist viel besser. – null

+3

@null erreichen die meisten von uns hier durch Google-Suche, nur zu sagen. –

+2

Ich stimme mit Harshul überein, dass Google die am häufigsten verwendete Suchmaschine ist, um verschiedene Stackoverflow-Ergebnisse zu sammeln. aber Stackoverflow hat bei weitem die knappsten Antworten für Entwicklungsfragen ... kein Fluff auf den Punkt gebracht. So viel besser als selbst die Besitzer von Technologien, z. B. Java (Oracle) .. etc ... –

6

Dies ist der richtige Ansatz:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
      <warName>${name}</warName> 
      <outputDirectory>C:\Tomcat7\webapps</outputDirectory> 
      </configuration> 
     </plugin> 

Dies wird eine WAR-Datei in C setzen: \ tomcat7 \ webapps Ordner mit dem Namen des Maven-Projektes.

+0

Nein, ist es nicht. Das ist sehr hacky Weg. – MariuszS

0

Danke für alle oben genannten Antworten.

Die folgende Antwort funktioniert für mich. Dies ist nur eine konsolidierte. Nichts Besonderes!

</project> 
........ 
    <build> 
    <finalName>HelloWorld1</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>C:\Program Files (x86)\apache-tomcat-8.5.8\webapps\</outputDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Weitere Informationen. Weitere Informationen finden Sie unter dependency:copy offizielle Seite.