You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Misha Dmitriev <Mi...@eng.sun.com> on 2001/12/12 21:24:22 UTC

The new optional task "javamake"

Apologize if you get this message twice - there seemed to be some
problem with the mail server on the first attempt...


We would like to draw the attention of the Ant community to the
experimental tool that we have recently developed and then integrated
with Ant. It is called Javamake, and is available at
http://www.experimentalstuff.com/Technologies/JavaMake/index.html

The function of the "javamake" task that we provide can be viewed as a
combination of those of the standard "javac" and "depend" tasks. That
is,
- it recompiles sources that are newer than corresponding classes;
- it tracks dependencies between project classes and, once any class
changes in an incompatible way, recompiles those that may be affected by

this change. E.g. if the signature of a non-private method m() in class
C is changed, javamake tries to recompile all classes that previously
called C.m().

The advantage of javamake is that it performs intelligent dependency
checking, which is based on the analysis of the actual change to a
class. E.g. in the above example, only those classes that referenced the

changed method m() of class C would be recompiled. In the same
situation, many other dependency checking tools would recompile *all*
classes that depend on C in any way, which may include those that, say,
reference some field of C, extend C, and so on. Such redundant
compilations may take much time, but still may be insufficient in some
cases. The most obvioius example is a changed compile-time constant (see

the online doc on the above web site for details).

Since the introduction of Javamake, we had a lot of positive feedback,
most of which is from people who use it as an extension to Ant. We
therefore would like to propose Javamake as an external Ant task.  Your
feedback is very welcome.

Regards,

Javamake development team




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>