web-dev-qa-db-ja.com

Tomcat webappフォルダーからwarファイルを生成します

Tomcatサーバーが動作しており、そこにwebappフォルダーmy_web_appがあります。

プロジェクトを展開しませんでした。そのアプリケーションのフォルダのみがあります(Tomcat_DIR/webapps/my_web_appとして)。

必要なのはWARファイルです。このwebappから.warファイルを作成するにはどうすればよいですか?

51
eLRuLL

既存のフォルダから.warファイルを作成できます。

このコマンドを使用する

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

プロジェクトのWARファイルを作成するのと同じように、いくつかの方法(Eclipse、コマンドライン、mavenから)で作成できます。

コマンドラインから実行したい場合、コマンドは

jar -cvf my_web_app.war * 

つまり、「このディレクトリ内のすべてをmy_web_app.warという名前のファイルに圧縮する」(c = create、v = verbose、f = file)

23
Charu Khurana

Eclipseからプロジェクトのwarファイルを作成する方法があります。

最初に、次のコードでxmlファイルを作成し、

HistoryCheckをプロジェクト名に置き換えます。

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

ここで、プロジェクトエクスプローラーでxmlファイルとRun as-> ant buildを右クリックします。

プロジェクトのwarファイルは、プロジェクトフォルダーで確認できます。

4
nmkyuppie

コンテンツが存在する場所とは別のディレクトリにwarファイルを作成します。そうしないと、jarコマンドは作成中のファイルを圧縮しようとします。

#!/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