我是ANT的新手,并尝试使用简单的ANT脚本来创建.war我的项目文件.
这是我的脚本
当我运行此脚本时,一切正常,但.jar文件中存在WebContent/WEB-INF/lib的.war文件被复制两次.
<?xml version="1.0" ?>
<project name="AutoComplete">
<path id="compile.classpath">
<fileset dir="WebContent/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="build/classes"/>
</target>
<target name="compile" depends="init" >
<javac includeantruntime="false" destdir="build/classes" debug="true" srcdir="src" >
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="build.war" depends="compile">
<war destfile="AutoComplete.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<lib dir="WebContent/WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
</target>
<target name="clean">
<delete dir="build" />
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
如果我犯了任何错误,请告诉我.
谢谢.
你的build.war任务看起来是罪魁祸首:
<war destfile="AutoComplete.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<lib dir="WebContent/WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
Run Code Online (Sandbox Code Playgroud)
第一个嵌套<fileset>从所有文件中提取WebContent到WAR的根目录.第二行然后明确地说WebContent/WEB-INF/lib应该将所有内容都视为库(并因此复制到WEB-INF/libWAR内部).
删除其中一行应该意味着libs被复制一次 - 如果你确实希望在WebContent中的所有内容都按原样复制到WAR中,你可以删除该<lib>行.
| 归档时间: |
|
| 查看次数: |
2780 次 |
| 最近记录: |