HCL VersionVault build problems with javac

There are some VersionVault build problems with javac.

VersionVault problems with Java builds relate to conflicts between the dependency analysis of clearmake and javac. clearmake is designed to control the build order and the dependency checking between parts of a build system. Java compilers are also designed to provide some of this functionality. When clearmake audits build tools that perform their own dependency checking, the result can be unnecessary rebuilds, builds that are never considered up-to-date, or derived objects that are not winked in. Consequently, the process of managing Java builds with clearmake can sometimes produce unexpected results.

For example, if makefiles declare all .class file dependencies accurately, clearmake can run the compiler in a sequence such that the compiler never builds more than is necessary. But if .class file dependencies are not declared, the compiler might build files that clearmake did not ask it to build. These inaccurate declarations might cause clearmake to treat .class targets as out of date, even if the compiler treats them as current. In some cases, clearmake might treat a build system as if it is never current. Moreover, the process of maintaining Java makefiles that accurately declare all .class dependencies is both difficult and tedious.

To solve VersionVault build problems with javac, you can use a special target called .JAVAC.