在Eclipse中设置新项目

时间:2010-04-07 20:22:02

标签: java eclipse ant

所以我在Eclipse中设置了一个新项目并创建了一个build.xml来创建一个war文件。我遇到的问题是战争中包含的唯一文件是WEB-INF中的内容。你如何将我的网络文件夹纳入战争?

  • 项目
    • SRC
    • 网络
    • WEB-INF

3 个答案:

答案 0 :(得分:5)

(编辑的正确性和清晰度)

假设项目设置如下:

  • 项目
    • src(java源文件)
    • web(网页内容)
    • WEB-INF(至少包含一个web.xml)
    • build(build.xml在这里)

这是一个快速的蚂蚁脚本来加强它:

<?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,但是无法判断这个建议是否适用。