2010-09-02 13 views
38

È possibile utilizzare solo la riga di comando per eseguire jetty con un solo file specificato war e percorso contesto.Jetty Run War Utilizzare solo la riga di comando

Qualcosa di simile:

java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp 
+1

Distintivo di Tumbleweed e poi alla fine famosa domanda per questo! – gbegley

risposta

1

E 'possibile, se avete la configurazione di avvio appropriato (jetty.xml) istituito.

Fuori dalla scatola, il molo non viene fornito con un jetty.xml che lo fa, ma è possibile scriverne uno abbastanza facilmente.

che vorrebbe dire che ci si sia

  1. dispone di una linea di comando che era più simile a

    java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp jetty-myapp.xml 
    

    o

    java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp etc/jetty.xml etc/jetty-plus.xml jetty-deploy-app.xml 
    
  2. Override etc/jetty.xml te e metti le informazioni che vuoi lì.

L'avvio del jetty è piuttosto semplice, quindi si tratta solo di produrre un file XML che fa ciò che si desidera. Quel file XML può leggere i valori dalle proprietà di sistema, quindi è possibile utilizzare le varie opzioni "-D".

+0

Tramite "inserire le informazioni desiderate in [ect/jetty.xml]" significa che potrei configurare etc/jetty.xml con le proprietà di sistema passate nella riga di comando, e quindi essere in grado di eseguire * qualsiasi file & war sulla mia casella con un singolo comando, o la configurazione sarebbe in una guerra specifica? – gbegley

+0

Sì, dovrebbe essere possibile farlo. Non l'ho ancora fatto, quindi potrebbe esserci qualche ostacolo che non ho considerato, ma il formato di configurazione XML di Jetty ti consente di fare praticamente tutto ciò che ti serve, quindi non vedo un motivo per cui non funzionerebbe. Se avrò il tempo, cercherò di provarlo da solo. – Tim

44

Utilizzare jetty runner.

java -jar jetty-runner.jar my.war 

con Maven, è possibile installare aggiungendo al vostro pom.xml:

<build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals><goal>copy</goal></goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>org.mortbay.jetty</groupId> 
           <artifactId>jetty-runner</artifactId> 
           <version>7.5.4.v20111024</version> 
           <destFileName>jetty-runner.jar</destFileName> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Run:

mvn package 

e utilizzare come:

java -jar target/dependency/jetty-runner.jar target/*.war 

http://www.eclipse.org/jetty/documentation/current/runner.html

http://central.maven.org/maven2/org/eclipse/jetty/jetty-runner/

+0

Analogamente, per tomcat c'è webapp-runner: https://github.com/jsimone/webapp-runner – ryenus

+0

Non so perché, ma questo dà errore 'java.lang.NoClassDefFoundError: org/apache/tomcat/util/IntrospectionUtils'. È correlato? – zygimantus

6

Ho scritto una piccola riga di comando app/Maven archetipo che funziona come come ho pensato che tutto questo dovrebbe avere in primo luogo. L'app di bootstrap ti permette di avviare il tuo contenitore servlet preferito (Jetty, Tomcat, GlassFish) semplicemente passandogli il percorso verso WAR e la tua porta.

Utilizzando Maven, è possibile creare e confezionare la propria istanza di questa semplice applicazione:

mvn archetype:generate \ 
    -DarchetypeGroupId=org.duelengine \ 
    -DarchetypeArtifactId=war-bootstrap-archetype \ 
    -DarchetypeVersion=0.2.1 

Poi si avvia in questo modo:

java -jar bootstrap.jar -war myapp.war -p 8080 -c /myapp --jetty 

Ecco il sorgente per l'utilità e l'archetipo : https://bitbucket.org/mckamey/war-bootstrap

2

Utilizzando jetty-runner-minimal:

$ git clone https://github.com/kissaten/jetty-runner-minimal 
$ cd jetty-runner-minimal && mvn package 
$ java -jar jetty-runner-minimal/target/dependency/jetty-runner.jar myapp.war 
Problemi correlati