Nicholas Christopher <nwc@flashcom.net> wrote:
> Stefan Bodewig wrote:
>>
>> Nicholas Christopher <nwc@flashcom.net> wrote:
>>
>> > What I found was that javac/jikes was touching the .class files
>> > every time. For example:
>> >
>> > $ ls *.java
>> > Foo.java
>> > $ javac *.java
>> > $ # wait 10 minuites - do nothing to Foo.java
>> > $ javac *.java
>> >
>> > Foo.class will have the newer timestamp.
>>
>> Sure, javac has compiled it again, so what would you expect? While
>> Ant's <javac> task will only recompile files that have changed,
>> command line javac does not perform a similar check AFAIK.
>>
>> Stefan
>
> The way I'm used to seeing things done is to first javac everything
> that might need it and then to rmic things.
And if you do so in Ant, Ant is supposed to only compile (<javac>) the
files that have changed (which works if your environment has been set
up correctly) and <rmic> will only compile those classes that have
changed. The latter case should work in Ant 1.2 unless you say
stubversion=1.2, the CVS version is supposed to work for this as well.
> If javac restamps everything it's not clear how rmic can know when
> things are unchanged.
When using Ant's <javac>, the source files that have not changed will
not be passed to javac/jikes at all.
Stefan
|