如何抑制重复的ant jar警告

时间:2009-10-01 18:40:15

标签: ant

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

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

有没有办法关闭此警告?

2 个答案:

答案 0 :(得分:2)

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

  1. 以某种方式排除重复文件,或
  2. 将文件复制到临时区域,以便cp任务处理重复项,而不是jar任务。
  3. 所以,而不是做:

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

    <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"/>
    

    编辑:根据对此答案的评论,有第三个选项,虽然这是一个相当多的工作......你总是可以获得jar任务的源,并修改这样它就不会打印出警告。你可以将它保存为树的本地修改,将其移动到另一个包并自己维护,或者尝试将补丁推回到上游。

答案 1 :(得分:1)

除非您使用jar task开关运行整个版本,否则我不知道-quiet上有任何选项可以取消这些邮件,在这种情况下,您可能看不到其他所需的信息。

一般情况下,如果您有大量重复文件,请注意它们是一件好事,因为可能会将不同的文件添加到您期望的文件中。这个可能表示构建的先前目标没有完成它的工作,尽管显然没有更多的细节,但是不可能。

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