如何解决从ANT创建战争文件时,Jar被复制了两次
| 我是ANT的新手,正在尝试一个简单的ANT脚本来创建我的项目的.war
文件。
这是我的剧本
当我运行此脚本时,一切正常,但WebContent/WEB-INF/lib
中存在的.jar
文件被复制到ѭ0inside文件内两次。
<?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>
如果我有任何失误,请告诉我。
谢谢。
解决方法
您的“ 5”任务似乎是元凶:
<war destfile=\"AutoComplete.war\" webxml=\"WebContent/WEB-INF/web.xml\">
<fileset dir=\"WebContent\"/>
<lib dir=\"WebContent/WEB-INF/lib\"/>
<classes dir=\"build/classes\"/>
</war>
第一个嵌套的<fileset>
将所有文件从WebContent
移至WAR的根目录。然后,第二行明确指出,应将WebContent/WEB-INF/lib
中的所有内容都视为一个库(并因此复制到WAR中的WEB-INF/lib
中)。
删除这些行之一应意味着将库复制一次-如果您确实希望在WAR中按原样复制WebContent中的所有内容,则只需删除<lib>
行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。