Paul Kinnucan wrote:
>
> I went back and retested my compile master and found that it did not work
> in the following important case. ClassA uses a method Foo defined by
> ClassB. I change the signature of Foo in classA. Recompiling the compile
> master does NOT result in ClassA being recompiled and hence ClassA is no
> longer valid. Apparently javac's dependency checking regards a class as
> current if it is not older than its source. This is not good enough to
> ensure that a build is valid.
>
> I thought I had tested this case but apparently my test was not constructed
> properly.
>
> Apparently the only way to guarantee that a build is valid with javac is to
> recompile all the classes.
Were you using javac -Xdepend for this test?
We use a variant of your "compile master" idea for our Java build and,
as far as I know, it handles this case when using the -Xdepend option to
javac (this is with JDK 1.2.2).
Toby.