2009-10-01 69 views
2

我不希望蚂蚁的罐子任务通知我每次跳过文件,因为该文件已被添加。我得到这个:如何抑制重复的蚂蚁罐警告

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

有没有办法关闭此警告?

回答

1

我不知道对jar task任何选项来抑制这些信息,除非你用-quiet开关,在这种情况下,你可能看不到你想要的其他信息运行整体构建。

一般情况下,如果你有很多重复的文件,这是一件好事,要警告他们,因为不同的文件可能会添加到你所期望的。这个可能是表示该构建的以前的目标没有完成它的工作,尽管显然没有更多细节,但是不可能说。

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

+0

我正在将XML文件的几个目录合并为一个创建jar。重复项是DTD。基本上: */xml/data/*。{xml,dtd} } - > params.jar(在jar中以xml/params/*。xml命名的文件) 我正在修补已经存在的系统,并且我需要尽可能保留相同的结构。我只需要用蚂蚁而不是可怕的自定义代码来构建它。 – skiphoppy 2009-10-05 16:51:39

+0

这没有出来 - 在/ xml/data和/ xml/params之前读一个星号,你会得到我输入的内容。 :) – skiphoppy 2009-10-05 16:52:59

2

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

  1. 排除以某种方式重复的文件,或
  2. 将文件复制到一个临时区域,使之与重复的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> 

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

编辑:底座上的评论这个答案,还有第三种选择,虽然它是一个fa ir有点更多的工作......你可以随时把源代码交给jar任务,并修改它,以便它不会打印出警告。您可以保留这个作为您的树的本地修改,将其移动到不同的包并自行维护它,或尝试将修补程序推回到上游。

+1

我强调不要任何暂存区域。我正试图摆脱过多的临时区域。 – skiphoppy 2010-01-19 17:34:52