我正在使用以下命令在ANT脚本中打包war文件
<target name="war" depends="compile">
<war destfile="${deploy.dir}/vms_war.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${classes.dir}">
<include name="**/*.class"/>
<exclude name="test/**/*.class"/>
</fileset>
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
</fileset>
<fileset dir="${web.dir}">
<include name="**/*.jspx"/>
<include name="**/*.jsp"/>
<include name="**/*.html"/>
<include name="WEB-INF/*.xml"/>
<include name="WEB-INF/lib/*.*"/>
<exclude name="**/web.xml"/>
</fileset>
</war>
</target>
战争打包时,结构如下
--WEB-INF
lib
web.xml
faces-config.xml
--mypackageappname
app
test
Login.class
Authenticate.class
....
我想要实现的是在打包war
时,我希望将java类放在WEB-INF
文件夹下以及lib
文件夹中。
我该怎么做?
答案 0 :(得分:2)
WAR Task文档说明(部分)嵌套classes
元素指定了FileSet。此文件集中包含的所有文件将最终位于war文件的WEB-INF / classes目录中。我认为您想要类似
<war destfile="${deploy.dir}/vms_war.war" webxml="${web.dir}/WEB-INF/web.xml">
<classes dir="${classes.dir}" />
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
</fileset>
<fileset dir="${web.dir}">
<include name="**/*.jspx"/>
<include name="**/*.jsp"/>
<include name="**/*.html"/>
<include name="WEB-INF/*.xml"/>
<include name="WEB-INF/lib/*.*"/>
<exclude name="**/web.xml"/>
</fileset>
</war>
答案 1 :(得分:1)
首先清空您的课程,然后将jar
放入war
文件中。像这样:
<target name="war" depends="compile">
<jar jarfile="${web.dir}/WEB-INF/lib/vms.jar">
<fileset dir="${classes.dir}">
<include name="**/*.class"/>
<exclude name="test/**/*.class"/>
</fileset>
</jar>
<war destfile="${deploy.dir}/vms_war.war" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
</fileset>
<fileset dir="${web.dir}">
<include name="**/*.jspx"/>
<include name="**/*.jsp"/>
<include name="**/*.html"/>
<include name="WEB-INF/*.xml"/>
<include name="WEB-INF/lib/*.*"/>
<exclude name="**/web.xml"/>
</fileset>
</war>
</target>