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?
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 *
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).
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.
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}