2013-05-02 27 views
44

Mam serwer Tomcat działa, i tam mam folder webapp my_web_app.Generowanie pliku wojny z katalogu webapp tomcat

Nie wdrożyłem projektu; Mam tylko ten folder tej aplikacji (jako TOMCAT_DIR/webapps/my_web_app).

Potrzebuję pliku WAR. Jak mogę utworzyć plik .war z tej aplikacji internetowej?

Odpowiedz

105

Możesz utworzyć plik .war z powrotem z istniejącego folderu.

Użycie tego polecenia

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

A co z bibliotekami, których używa projekt, znajdującymi się w folderze lib Tomcara? Czy trzeba je umieścić w pliku wojennym? Czy ten plik wojenny działa w innym kontenerze serwletów, takim jak JBoss? –

+0

@ketan Czy polecenie wymaga plików wejściowych lub manifestu, ponieważ wystąpił błąd (mówiąc, że polecenie wymaga plików wejściowych lub plików manifestu), gdy postępowałem zgodnie z Twoimi instrukcjami? Czy mógłbyś mi pomóc? Także FYI, przeglądałem dla błędu, który dostałem ale to (http://stackoverflow.com/questions/23422470/getting-error-while-creating-war-file) wydaje się nie pomagać. –

+0

Użyłem tego, aby utworzyć plik wojenny z wyników pakietu, a tomcat go polubił. – jkerak

22

To jak stworzenie pliku z projektem WAR, można to zrobić na kilka sposobów (od Eclipse, wiersza poleceń, maven).

Jeśli chcesz zrobić z wiersza polecenia, polecenie jest

jar -cvf my_web_app.war * 

Co oznacza „kompresować wszystko w tym katalogu w pliku o nazwie my_web_app.war” (c = tworzyć, v = gadatliwy, f = plik)

+0

Jedno jak wyjaśnienie 3 flag (nie widziałem tego nigdzie indziej). –

4

Istnieje sposób na utworzenie pliku wojny twojego projektu z zaćmienia.

Najpierw utwórz plik xml z następującego kodu,

Wymień HistoryCheck z nazwą projektu.

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

Teraz w Eksploratorze projektu kliknij prawym przyciskiem myszy na tym xml pliku i Run as-> ant build

widać plik war swojego projektu w folderze projektu.

+0

Otrzymanie tego błędu ... docelowy buildwar nie istnieje w projekcie ". Jest używany od domyślnej wartości docelowej. –

1

Utwórz plik wojenny w innym katalogu niż zawartość, w przeciwnym razie polecenie jar może spróbować skompresować tworzony plik.

#!/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} 
Powiązane problemy