所以我在Eclipse中设置了一个新项目并创建了一个build.xml来创建一个war文件。我遇到的问题是战争中包含的唯一文件是WEB-INF中的内容。你如何将我的网络文件夹纳入战争?
答案 0 :(得分:5)
(编辑的正确性和清晰度)
假设项目设置如下:
这是一个快速的蚂蚁脚本来加强它:
<?xml version="1.0"?>
<project name="sample" basedir="../" default="war">
<target name="compile">
<delete dir="build/classes"/>
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="war" depends="compile">
<war destfile="myWar.war" webxml="WEB-INF/web.xml">
<fileset dir="web"/>
<classes dir="build/classes"/>
<webinf dir="WEB-INF"/>
</war>
</target>
</project>
有关详细信息,请参阅war
task的Ant用户手册。
答案 1 :(得分:1)
您的WEB-INF应位于网络文件夹下方。课程应该放在web / WEB-INF / classes中。
构建完成的布局,然后使用WAR任务将其包装起来。
答案 2 :(得分:1)
由于您指的是build.xml文件,我假设您正在使用Ant(或者Eclipse正在使用它。)如果是这种情况,您希望使用 war Ant任务及其包含属性(或 fileset 嵌套任务)列出您的Web目录以包含在生成的战争中。
http://ant.apache.org/manual/Tasks/war.html
假设您使用的是缺少 war 任务的较旧的Ant发行版,请使用 war 继承的 jar 任务。
我不知道你的build.xml是什么样的,但我冒昧地猜测它有一个 war 或 jar 任务。使用 includes 属性,它应该看起来像这样(这是我的头脑,您可能需要调整它以根据您的具体情况进行编译):
<war destfile="your.war" webxml="src/metadata/your.xml">
<fileset dir="src"/>
<fileset dir="web"/>
<classes dir="build/classes"/>
</war>
虽然没有看到你的build.xml,但是无法判断这个建议是否适用。