Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何抑制重复的ant jar警告_Ant - Fatal编程技术网

如何抑制重复的ant jar警告

如何抑制重复的ant jar警告,ant,Ant,我不希望ant的jar任务在每次跳过文件时都通知我,因为文件已经添加。我得到了很多这样的信息: [jar] xml/dir1/dir2.dtd already added, skipping 是否有办法关闭此警告?我不知道上有任何选项可以抑制这些消息,除非您使用开关运行整个生成,在这种情况下,您可能看不到所需的其他信息 一般来说,如果你有很多重复的文件,最好是警告他们,因为可能会在你期望的文件中添加一个不同的文件。这可能表明构建的前一个目标没有完成它可能完成的工作,尽管显然没有更多细节是不可

我不希望ant的jar任务在每次跳过文件时都通知我,因为文件已经添加。我得到了很多这样的信息:

 [jar] xml/dir1/dir2.dtd already added, skipping

是否有办法关闭此警告?

我不知道上有任何选项可以抑制这些消息,除非您使用开关运行整个生成,在这种情况下,您可能看不到所需的其他信息

一般来说,如果你有很多重复的文件,最好是警告他们,因为可能会在你期望的文件中添加一个不同的文件。这可能表明构建的前一个目标没有完成它可能完成的工作,尽管显然没有更多细节是不可能的


出于兴趣,为什么会有重复的文件?

这是一个较老的问题,但有一种明显的方法可以排除重复警告,即不要包含重复的文件。您可以通过以下两种方式之一执行此操作:

  • 以某种方式排除重复文件,或
  • 将文件复制到暂存区域,以便cp任务处理重复文件,而不是jar任务
  • 因此,与其这样做,不如:

    <jar destfile="${dist}/lib/app.jar">
      <fileset dir="a" include="xml/data/*.{xml,dtd}"/>
      <fileset dir="b" include="xml/data/*.{xml,dtd}"/>
      <fileset dir="c" include="xml/data/*.{xml,dtd}"/>
    </jar>
    
    
    
    执行以下操作之一:

    <jar destfile="${dist}/lib/app.jar">
      <fileset dir="a" include="xml/data/*.{xml,dtd}"/>
      <fileset dir="b" include="xml/data/*.xml"/>
      <fileset dir="c" include="xml/data/*.xml"/>
    </jar>
    
    
    

    
    

    编辑:根据对这个答案的评论,还有第三个选择,尽管这是一个相当多的工作。。。您始终可以将源代码获取到jar任务,并对其进行修改,使其不会打印出警告。您可以将此作为对树的本地修改,将其移动到另一个包中并自己维护,或者尝试将修补程序推回到上游。

    在创建jar时,我将几个XML文件目录压缩为一个。重复的是DTD。基本上:/xml/data/{xml,dtd}->data.jar(jar中命名为xml/data/*.xml的文件)/xml/params/{xml,dtd}->params.jar(jar中命名为xml/params/*.xml的文件)我正在修补一个已经这样做的现有系统,我需要尽可能保留相同的结构。我只需要用ant而不是可怕的自定义代码来构建它。结果不正确-在/xml/data和/xml/params之前读一个星号,你就会得到我键入的内容。:)我绝对不想要任何集结地。我现在正试图摆脱太多的集结地。
    <copy todir="tmpdir">
      <fileset dir="a" include="xml/data/*.{xml,dtd}"/>
      <fileset dir="b" include="xml/data/*.{xml,dtd}"/>
      <fileset dir="c" include="xml/data/*.{xml,dtd}"/>
    </copy>
    <jar destfile="${dist}/lib/app.jar">
      <fileset dir="tmpdir" include="xml/data/*.{xml,dtd}"/>
    </jar>
    <delete dir="tmpdir"/>