gpt4 book ai didi

java - 从 ANT 创建 war 文件时 Jar 被复制了两次

转载 作者:行者123 更新时间:2023-12-01 06:58:08 24 4
gpt4 key购买 nike

我是 ANT 新手,正在尝试使用简单的 ANT 脚本来创建项目的 .war 文件。
这是我的脚本
当我运行此脚本时,一切正常,但 WebContent/WEB-INF/lib 中存在的 .jar 文件在 .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>

如果我犯了任何错误,请告诉我。

谢谢。

最佳答案

您的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>

第一个嵌套<fileset>WebContent 中提取所有文件到 war 的根源。第二行明确指出 WebContent/WEB-INF/lib 中的所有内容应被视为一个库(因此复制到 WAR 内的 WEB-INF/lib)。

删除其中一行应该意味着库会被复制一次 - 如果您确实希望 WebContent 中的所有内容在 WAR 中按原样复制,您只需删除 <lib> 即可。线。

关于java - 从 ANT 创建 war 文件时 Jar 被复制了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6123108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com