我对Ant比较陌生,我正试图找到最简单的方法来加强我的Web应用程序。
我已经有了构建目标,可以创建以下“爆炸的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/lib
之外,它似乎不支持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>
stylesheets
和views
怎么样,或者我想要的其他内容呢?如果我想将文件或目录添加到WEB-INF/
怎么办?如果我想在与WEB-INF/
相同的级别添加某些内容,该怎么办? <war/>
任务似乎太不灵活了。
无论哪种方式(因为我确定任务 灵活而且我只是没有“得到”它),我只想要最简单的方法来创建一个myapp.war
早期构建目标在gen/war
下创建的确切目录结构。提前谢谢。
答案 0 :(得分:3)
您可以在war标签内使用文件集
我们的构建文件中的示例
<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>
答案 1 :(得分:1)
想出来,这更容易。如果您已经拥有自己的爆炸war目录,则<war/>
任务会施加太多限制。只需拉链!
<zip destfile="myapp.war"
basedir="gen/war" update="true" />