On Wed, Sep 5, 2012 at 10:20 PM, Greg Ward <[email protected]> wrote: > OK, I finally sat down and did a little thought experiment, and have > convinced myself that file-based buld tools will never handle Java. > The reason? Dependency cycles. > > Short version: in Java, cycles between source files in the same > package are commonplace and often impossible to avoid. Because > interface and implementation are in the same file, that leads to DAG > cycles, which any DAG-of-files-based build tool (make, SCons, tup, > waf, ...) will reject.
I don't think this is really a problem, or doesn't have to be. In SCons there are no dependencies *between* source files; only from object (.class files) to source (the object depends on the source(s)). And the jar depends on the class files. So I don't see how call graph complexities lead to build dependency cycles. If any of the source files change, certain objects and jars depend on those and have to be rebuilt. The real problem (at least as I understand it, I'm not a Java guy) is the fact that each .java produces unpredictable outputs. Am I correct about this, or are there actually real unavoidable build dependency cycles? -- Gary _______________________________________________ Scons-dev mailing list [email protected] http://two.pairlist.net/mailman/listinfo/scons-dev
