Tomcatサーバーが動作しており、そこにwebappフォルダーmy_web_app
があります。
プロジェクトを展開しませんでした。そのアプリケーションのフォルダのみがあります(Tomcat_DIR/webapps/my_web_app
として)。
必要なのはWARファイルです。このwebappから.war
ファイルを作成するにはどうすればよいですか?
既存のフォルダから.warファイルを作成できます。
このコマンドを使用する
cd /to/your/folder/location
jar -cvf my_web_app.war *
プロジェクトのWAR
ファイルを作成するのと同じように、いくつかの方法(Eclipse、コマンドライン、mavenから)で作成できます。
コマンドラインから実行したい場合、コマンドは
jar -cvf my_web_app.war *
つまり、「このディレクトリ内のすべてをmy_web_app.warという名前のファイルに圧縮する」(c = create、v = verbose、f = file)
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ファイルは、プロジェクトフォルダーで確認できます。
コンテンツが存在する場所とは別のディレクトリに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}