2

我对 Ant 比较陌生,并且正在尝试找到对我的 Web 应用程序进行 WAR-up 的最简单方法。

我已经有创建以下“exploded WAR”目录结构的构建目标:

MyApp/
    src/
        ...
    gen/    <-- this gets created as a part of every build
        war/
            stylesheets/
                myapp.css
            views/
                index.jsp
                cool.jsp
                ...
            WEB-INF/
                web.xml
                lib/
                    (All of my dependencies)
                classes/
                    META-INF/
                        jdoconfig.xml
                    com/
                        myapp/
                            (All compiled binaries)

因此,考虑到当我准备好创建 WAR 文件(使用<war/><zip/>其他任何东西)时,我已经准备好了 WAR 的分解版本。

我对<war/>任务的问题是它似乎不支持war/WEB-INF/liband下的目录WEB-INF/classes

<war destfile="myapp.war" webxml="gen/war/WEB-INF/web.xml">
    <lib dir="gen/war/WEB-INF/lib" />
    <classes dir="gen/war/WEB-INF/classes" />
</war>

stylesheetsviews,或者我可能想要的任何其他东西呢?如果我想添加一个文件或目录WEB-INF/怎么办?如果我想在战争中添加与 相同级别的东西WEB-INF/怎么办?这项<war/>任务似乎太不灵活了。

无论哪种方式(因为我确信任务灵活的,我只是没有“得到”它),我只想要最简单的方法来创建一个myapp.war具有早期构建目标在gen/war. 提前致谢。

4

2 回答 2

3

您可以在战争标签内使用文件集

我们构建文件中的一个示例

<war destfile="${war.dest.file.name.without.extension}.war"      manifest="${build.dir}/MANIFEST.MF" webxml="${webcontent.dir}/WEB-INF/web.xml">
        <fileset dir="${webcontent.dir}" casesensitive="no">
            <exclude name="WEB-INF/lib/**"/>
            <exclude name="WEB-INF/classes/**"/>
            <exclude name="WEB-INF/web.xml"/>
            <exclude name="META-INF/context.xml"/>
         </fileset>
         <lib dir="${app.lib.dir}"/>
         <classes dir="${classes.dir}"/>
    </war>
于 2013-01-30T21:25:17.053 回答
1

想通了,这样就容易多了。如果您已经拥有自己的爆炸式战争目录,则该<war/>任务会施加太多限制。把它拉上拉链

<zip destfile="myapp.war"
    basedir="gen/war" update="true" />
于 2013-01-30T23:42:10.613 回答