ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Drach <>
Subject Jar update problem
Date Tue, 04 Mar 2003 00:17:35 GMT

I said I had the exact same problem, but I actually misunderstood what
it means to update a jar file using the* API.  In
Java you can't just add an entry to an existing jar (or zip) file,
because there is no API method to do that.  You must copy entries
from one jar file to a new one.  Here, update means to replace older
entries with new ones, add new ones, and copy older entries that
don't have newer counterparts.  The end result is you create a new
jar file that is a duplicate of the old jar file with updated entries.

I was thinking you could just take the old jar file and replace entries in
it if newer entries were found, because I thought that was how unix
zip worked.  But thinking about it, you can't do that.  In order to do
that, you'd have to invalidate old entries and add the newer counterparts.
Your zipfile would grow and contain lots of garbage.  Rewriting the
entire zip file is the only way that makes practical sense.

-----Original Message-----
From: Steve Drach []
Sent: Friday, February 28, 2003 3:44 PM

I have the exact same problem with "Apache Ant version 1.6alpha compiled
on February 28 2003."  This is on Solaris 2.8, so it doesn't seem like
it's been fixed.  Is there an open bug report on this?

-----Original Message-----
From: Dominique Devienne <>
Subject: jar update quesiton
Date: Fri, 31 Jan 2003 13:44:13 -0600
Content-Type: text/plain

Well known bug, to be fixed for Ant 1.5.2 and 1.6. Ant BugZilla is
littered with bug entries for the <jar update="true"> problem. Use a
nightly build of CVS were it's supposed to be 99% fixed. --DD

-----Original Message-----
From: Mark Smith []
Sent: Friday, January 31, 2003 1:21 PM
Subject: jar update quesiton


I've been looking through this newsgroup and couldn't find someone that
asked this particular question...  How do I use the <jar> task to update
a jar file when only a few files in it has been updated?

For example, when doing daily development, I compile my entire codebase,
then jar up a chunk of it for my applet/webstart stuff, then I start my
application, all within ant.  So for the <jar> task, I only want files
that have been updated to be updated to the jar.  I don't want the
entire jar file to be recreated.

I've played with the update and duplicate options in the <jar> task and
ran in --verbose mode but can't get the effect I'm looking for..  Seems
like no matter what I do, whenever a file is updated, the <jar> task
adds an entry for *every* file, not just the updated files.  Also, the
ant documentation does not state what the possible values are for the
"update" tag within the <jar> task.

Any help is greatly appreciated.


View raw message