2013-05-02 13 views
44

Ho un server tomcat funzionante, e lì ho una cartella webapp my_web_app.Genera file di guerra dalla cartella webapp tomcat

Non ho distribuito il progetto; Ho solo quella cartella dell'applicazione (come TOMCAT_DIR/webapps/my_web_app).

Quello che mi serve è un file WAR. Come posso creare un file .war da questa webapp?

risposta

105

È possibile creare il file .war indietro dalla cartella esistente.

Utilizzando questo comando

cd /to/your/folder/location 
jar -cvf my_web_app.war * 
+0

E le librerie utilizzate dal progetto che si trovano nella cartella lib di Tomcar? Devono essere messi all'interno del file di guerra? Questo file di guerra funzionerà in un altro contenitore servlet come JBoss? –

+0

@ketan Il comando richiede file di input o manifest perché ho ricevuto un errore (dicendo che il comando richiede i file di input o manifest) quando ho seguito i tuoi passi? Potresti aiutarmi? Anche FYI, ho cercato l'errore che ho ottenuto ma (http://stackoverflow.com/questions/23422470/getting-error-while-creating-war-file) non sembra aiutare. –

+0

Ho usato questo per creare un file di guerra dai risultati del webpack e Tomcat è piaciuto. – jkerak

22

suo proprio come la creazione di un file WAR del progetto, lo si può fare in diversi modi (da Eclipse, linea di comando, Maven).

Se si vuole fare da linea di comando, il comando è

jar -cvf my_web_app.war * 

Il che significa, "comprimere tutto in questa directory in un file chiamato my_web_app.war" (c = creare, v = verbose, f = file)

+0

Uno simile per la spiegazione delle 3 flag (non l'ho visto da nessun'altra parte.) –

4

C'è un modo per creare un file di guerra del progetto da eclissi.

Prima un creare un file XML con il seguente codice,

Sostituire HistoryCheck con il nome del progetto.

<?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> 

Ora, In Esplora progetti fare clic destro su quel xml di file e Run come-> Ant

È possibile visualizzare il file WAR del progetto nella cartella del progetto.

+0

Ottenere questo errore ... Il buildwar di destinazione non esiste nel progetto ". Viene utilizzato dal valore predefinito di destinazione. –

1

Creare il file di guerra in una directory diversa in cui il contenuto è altrimenti il ​​comando jar potrebbe provare a comprimere il file che sta creando.

#!/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} 
Problemi correlati