web-dev-qa-db-fra.com

Générer un fichier war à partir du dossier Tomcat webapp

J'ai un serveur Tomcat qui fonctionne, et là j'ai un dossier webapp my_web_app.

Je n'ai pas déployé le projet; Je n'ai que ce dossier de cette application (comme Tomcat_DIR/webapps/my_web_app).

Ce dont j'ai besoin est un fichier WAR. Comment créer un .war fichier de cette webapp?

51
eLRuLL

Vous pouvez créer un fichier .war à partir de votre dossier existant.

Utiliser cette commande

cd /to/your/folder/location
jar -cvf my_web_app.war *
125
Ketan

C'est comme si vous créiez un fichier WAR de votre projet, vous pouvez le faire de plusieurs manières (à partir d'Eclipse, de la ligne de commande ou de maven).

Si vous voulez faire en ligne de commande, la commande est

jar -cvf my_web_app.war * 

Ce qui signifie "compresse tout ce qui se trouve dans ce répertoire dans un fichier nommé my_web_app.war" (c = créer, v = détaillé, f = fichier).

23
Charu Khurana

Il existe un moyen de créer un fichier war de votre projet à partir d’Eclipse.

Commencez par créer un fichier XML avec le code suivant,

Remplacez HistoryCheck par le nom de votre projet.

<?xml version="1.0" encoding="UTF-8"?>
<project name="HistoryCheck" basedir="." default="default">
    <target name="default" depends="buildwar,deploy"></target>
    <target name="buildwar">
        <war basedir="war" destfile="HistoryCheck.war" webxml="war/WEB-INF/web.xml">
            <exclude name="WEB-INF/**" />
            <webinf dir="war/WEB-INF/">
                <include name="**/*.jar" />
            </webinf>
        </war>
    </target>
    <target name="deploy">
        <copy file="HistoryCheck.war" todir="." />
    </target>
</project>

Maintenant, dans l'explorateur de projet, cliquez avec le bouton droit sur ce fichier xml et Exécuter en tant que -> ant build

Vous pouvez voir le fichier war de votre projet dans le dossier de votre projet.

4
nmkyuppie

Créez le fichier war dans un répertoire différent du contenu, sinon la commande jar pourrait essayer de compresser le fichier créé.

#!/bin/bash

set -euo pipefail

war=app.war
src=contents

# Clean last war build
if [ -e ${war} ]; then
    echo "Removing old war ${war}"
    rm -rf ${war}
fi

# Build war
if [ -d ${src} ]; then
    echo "Found source at ${src}"
    cd ${src}
    jar -cvf ../${war} *
    cd ..
fi

# Show war details
ls -la ${war}
1
Gary Davies