web-dev-qa-db-fra.com

Jetty Run War Utilisation uniquement de la ligne de commande

Est-il possible d'utiliser uniquement la ligne de commande pour exécuter jetty avec uniquement un fichier war et un chemin de contexte spécifiés.

Quelque chose comme :

Java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp
41
gbegley

Utilisez le jetty runner .

 Java -jar jetty-runner.jar my.war

Avec Maven, vous pouvez installer en ajoutant à votre 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>

Courir:

mvn package

Et utiliser comme:

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/

46
rado

J'ai écrit un minuscule archétype d'application en ligne de commande/Maven qui fonctionne comme je pensais que tout cela devrait avoir en premier lieu. L'application bootstrap vous permet de lancer le conteneur de servlet de votre choix (Jetty, Tomcat, GlassFish) en lui passant simplement le chemin vers le WAR et votre port.

En utilisant Maven, vous pouvez créer et empaqueter votre propre instance de cette application simple:

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

Ensuite, vous le lancez comme ceci:

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

Voici la source de l'utilitaire et de l'archétype: https://bitbucket.org/mckamey/war-bootstrap

7
mckamey

Utilisation de 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
2
tokland

C'est possible, si vous avez la configuration de démarrage appropriée (jetty.xml) configurée.

Hors de la boîte, jetty n'est pas livrée avec un jetty.xml qui fait cela, mais vous pouvez en écrire un assez facilement.

Cela signifierait que vous feriez soit

  1. Avoir une ligne de commande qui ressemblait plus à

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

    ou

    Java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp etc/jetty.xml etc/jetty-plus.xml jetty-deploy-app.xml
    
  2. Remplacez vous-même le fichier etc/jetty.xml et insérez-y les informations souhaitées.

Le démarrage de Jetty est assez simple, il s'agit donc simplement de produire un fichier XML qui fait ce que vous voulez. Ce fichier XML peut lire les valeurs des propriétés du système, vous pouvez donc utiliser vos différentes options "-D".

2
Tim