web-dev-qa-db-fra.com

Comment créer un fichier WAR à l'aide de la ligne de commande?

J'ai installé JBoss Developer Studio et il est possible de créer un fichier WAR par "projet de souris droit> Exporter> fichier WAR" mais je veux exporter mon projet vers un fichier WAR en utilisant la ligne de commande.

J'ai installé maven qui est l'une des exigences du Studio et j'ai lu que je peux générer un fichier WAR à l'aide de maven mais j'ai besoin d'un fichier appelé pom.xml. Lorsque j'ai cherché dans mon espace de travail et mon projet, pom.xml était manquant. Il se peut que je doive créer manuellement pom.xml, mais je ne sais pas comment.

Mon arborescence de répertoires pour mon projet est la suivante:

Siesta
├── build
│   └── classes
├── src
└── WebContent
    ├── extjs
    ├── extjs-4.2.0
    ├── extjs-4.2.2
    ├── index.jsp
    ├── META-INF
    ├── siesta
    ├── tests
    └── WEB-INF

Comment créer un fichier WAR pour mon projet Maven/JBoss en utilisant la ligne de commande? J'utilise Linux et je préférerais ne pas avoir à créer un fichier pom.xml mais s'il n'y a pas d'autre moyen, je vais utiliser le fichier xml pour générer le fichier war.

Modifier:

Le pot est donc le chemin à parcourir pour créer un fichier de guerre. J'ai rédigé un petit script qui va créer un fichier war pour moi pour un répertoire spécifique.

#!/bin/bash
cd Siesta/WebContent/
jar -cvf ../../Siesta.war *
cd -

Ensuite, si vous ouvrez le fichier war dans un utilitaire Zip ou un gestionnaire d'archives dans ubuntu, vous verrez cette structure

    ├── extjs
    ├── extjs-4.2.0
    ├── extjs-4.2.2
    ├── index.jsp
    ├── META-INF
    ├── siesta
    ├── tests
    └── WEB-INF

Je dois CD dans le répertoire que je veux créer un fichier de guerre qui est un peu ennuyeux. Je pense qu'il peut y avoir une meilleure façon de le faire en utilisant l'option -C de jar mais quand j'ai utilisé "jar -cvf Siesta.war -C Siesta/WebContent *", cela n'a pas eu le même résultat.

Edit2:

jar -cvf my-app.war myfolder/

Pour que mon application fonctionne sur Tomcat, j'utilise les éléments suivants:

cd Siesta/WebContent
jar -cvf Siesta.war *
12
SomeGuyOnAComputer

D'accord, voici un SO avec quelques possibilités sur la façon de créer un fichier de guerre: Comment créer des fichiers de guerre .

Personnellement, je préfère Maven à tout autre scénario de construction - Depuis que j'ai migré d'ANT, je n'ai pas aimé Maven en premier lieu, mais après avoir investi comme un jour ou deux dans les documentations: http://maven.Apache.org/ pom.html j'ai commencé à l'aimer. Dans votre cas, tout ce dont vous avez besoin est de refactoriser votre projet pour qu'il réponde à la structure de fichiers standard maven et de créer un projet Maven minimum (a.k.a. pom.xml fichier) pour vos sources qui ont le package war au lieu de la valeur par défaut jar.

Si vous souhaitez vous en tenir à la console uniquement et que vous n'utilisez aucun assistant de construction à côté de ceux fournis par le JDK, vous pouvez créer votre guerre avec quelque chose comme ceci:

jar cvf my-app.war

Jetez un œil à ceci: https://docs.Oracle.com/javase/tutorial/deployment/jar/build.html pour une référence complète des options prises en charge.

(Remarque: une "guerre" dans le contexte des applications Web basées sur Java suit un format standard: http://docs.Oracle.com/javaee/6/tutorial/doc /bnaby.html alors que le fichier technique ".war" est identique à un dossier compressé Zip renommé en ".Zip".)

(Notez également que je prendrais vraiment le temps de contacter maven car après cela, vous connaissez un outil de construction sérieux et pourrez créer jar, ear, war etc. dans un processus standard).

3
JBA

S'il s'agit d'un projet Maven , ouvrez votre console, accédez à l'emplacement du fichier pom.xml, puis courir:

mvn package

Il créera le fichier {artifactId} - {version} .war sous le répertoire $ {basedir}/target . Cela suppose que votre élément packaging POM est défini sur war dans votre fichier pom.xml.

<project ...>
    ...
    <packaging>war</packaging>
    ...
</project>

Certaines des valeurs d'emballage valides sont jar , war , oreille et pom . Si aucune valeur de conditionnement n'a été spécifiée, elle sera par défaut à jar .

Plus de détails ici et ici .

5
Voicu