From owner-freebsd-java Wed Feb 27 20:13:59 2002 Delivered-To: freebsd-java@freebsd.org Received: from mail.looneys.net (crufty.looneys.net [63.231.250.33]) by hub.freebsd.org (Postfix) with ESMTP id 93DB937B402 for ; Wed, 27 Feb 2002 20:13:53 -0800 (PST) Received: from there (serpico.looneys.net [63.231.250.36]) by mail.looneys.net (Postfix) with SMTP id 23D4522522 for ; Wed, 27 Feb 2002 22:13:52 -0600 (CST) Content-Type: text/plain; charset="iso-8859-1" From: Mcclain Looney Reply-To: mcclain@looneys.net To: freebsd-java@FreeBSD.ORG Subject: Re: class dependencies (Re: What is ant good for?) Date: Wed, 27 Feb 2002 22:13:57 -0600 X-Mailer: KMail [version 1.3.2] References: In-Reply-To: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-Id: <20020228041352.23D4522522@mail.looneys.net> Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org fwiw, for those of you who haven't tried it yet, ant/javac do a pretty good job of picking up deps. our 800+ class project generally only compiled the files it needed to. there are only a few gotchas, like final methods and variables (you must recompile all dependent classes), and of course, the venerable "forname" loading process. Generally, my rule of thumb is, "ant clean" daily at least, always for new cvs updates, and always when something is mysteriously out of wack, and of course, whenever you notice you are editing something marked final. as for dep analysis tools, for those of you who want some industrial strength analysis and optimization, check out jax from ibm. it's a optimizing obfuscator that does things like flatten object heirarchies, removing dead code and other voodoo. it used to be free, now it's 1800 bux or something like that. mainly used for building fast, small .jar files. from the site: JAX reads class files, analyzes them, and generates a compressed ZIP file as output, following this ordered procedure: Removal of dead methods and fields Detection of live overridden methods Removal of unused classes and interfaces Inlining of methods Removal of non-essential attributes Shortening of internal method names and field names Removal of non-used entries in the constant pool alphaworks.ibm.com/tech/jax in my experience, it works really well for stripping out unneeded bloat from 3rd party jar files you are bundling into your project, though the config process is a complete mess (or was). anyway, i guess my point is, don't poo-pooh ant, it's a pretty good tool. -mcclain To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message