skiphoppy
skiphoppy

Reputation: 102723

How to suppress ant jar warnings for duplicates

I don't want ant's jar task to notify me every time it skips a file because the file has already been added. I get reams of this:

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

Is there a way to turn this warning off?

Upvotes: 2

Views: 1169

Answers (2)

Rich Seller
Rich Seller

Reputation: 84028

I don't know of any options on the jar task to suppress these messages, unless you run the whole build with the -quiet switch, in which case you may not see other information you want.

In general if you have lots of duplicate files it is a good thing to be warned about them as a different one may be added to that which you expect. This possibly indicates that a previous target of the build has not done its job as well as it might, though obviously without more details it is impossible to say.

Out of interest why do you have the duplicate files?

Upvotes: 1

Paul Wagland
Paul Wagland

Reputation: 29116

This is an older question, but there is one obvious way to exclude the duplicates warning, do not include the duplicate files. You could do this in one of two ways:

  1. Exclude the duplicate files in some fashion, or
  2. Copy the files to a staging area, so that the cp task deals with duplicates, not the jar task.

So, instead of doing:

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

do one of:

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

or

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

Edit: Base on the comment to this answer, there is a third option, although it is a fair bit more work... You can always get the source to the jar task, and modify it so that it does not print out the warnings. You could keep this as a local modification to your tree, move it to a different package and maintain it yourself, or try to get the patch pushed back upstream.

Upvotes: 2

Related Questions