java - 从tomcat webapp文件夹生成war文件



(3)

在不同的目录中创建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}

https://src-bin.com

我有一个tomcat服务器工作,我有一个webapp文件夹my_web_app

我没有部署这个项目; 我只有该应用程序的那个文件夹(如TOMCAT_DIR/webapps/my_web_app )。

我需要的是一个WAR文件。 如何从此webapp创建.war文件?


Answer #1

就像创建项目的WAR文件一样,您可以通过多种方式(从Eclipse,命令行,maven)完成。

如果你想从命令行做,命令是

jar -cvf my_web_app.war * 

这意味着,“将此目录中的所有内容压缩到名为my_web_app.war的文件中”(c = create,v = verbose,f = file)


Answer #2

有一种方法可以从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文件并运行as-> ant build

您可以在项目文件夹中查看项目的war文件。





tomcat