Est-il possible d'utiliser uniquement la ligne de commande pour exécuter jetty
avec seulement un war
et Context Path.
Quelque chose comme :
java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp
Est-il possible d'utiliser uniquement la ligne de commande pour exécuter jetty
avec seulement un war
et Context Path.
Quelque chose comme :
java -jar $jettyHome/start.jar -Dwar.location=myApp.war -DcontextPath=/myApp OPTIONS=default,plus,jsp
Utilisez le coureur de jetée .
java -jar jetty-runner.jar my.war
Avec Maven, vous pouvez effectuer l'installation en ajoutant à votre fichier 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>
Cours :
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 une minuscule application en ligne de commande / archétype Maven qui fonctionne comme je pensais que tout cela aurait dû être fait au départ. 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
Puis vous le lancez comme ceci :
java -jar bootstrap.jar -war myapp.war -p 8080 -c /myapp --jetty
Voici la source pour l'utilitaire et 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
$ wget https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war
$ java -jar target/dependency/jetty-runner.jar sample.war
C'est possible, si vous avez mis en place la configuration de démarrage appropriée (jetty.xml).
En l'état, jetty n'est pas livré avec un fichier jetty.xml qui fait cela, mais vous pouvez en écrire un assez facilement.
Cela voudrait dire que soit vous
Avoir une ligne de commande qui était plus comme
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
Remplacez vous-même le fichier etc/jetty.xml et mettez-y les informations que vous voulez.
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, ce qui vous permet d'utiliser vos diverses options "-D".
Par "mettre les informations que vous voulez dans [ect/jetty.xml]", cela signifie-t-il que je pourrais configurer etc/jetty.xml avec les propriétés du système passées en ligne de commande, et ensuite être capable d'exécuter *n'importe quel& fichier war sur ma boîte avec une seule commande, ou la configuration serait-elle pour un war spécifique ?
Oui, cela devrait être possible. Je ne l'ai pas encore fait, il y a donc peut-être des obstacles que je n'ai pas pris en compte, mais le format de configuration XML de Jetty vous permet de faire à peu près tout ce dont vous avez besoin, donc je ne vois pas pourquoi cela ne fonctionnerait pas. Si j'ai le temps, j'essaierai de le faire moi-même.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
L'insigne du Tumbleweed et finalement la fameuse question pour celui-ci !