我有一个工作的 tomcat 服务器,并且有一个 webapp 文件夹my_web_app
。
我没有部署项目;我只有该应用程序的那个文件夹(as TOMCAT_DIR/webapps/my_web_app
)。
我需要的是一个WAR文件。如何.war
从此 webapp 创建文件?
您可以从现有文件夹创建 .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文件并运行为-> 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}