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