Hi all, I've been going through the modular build stuff (River 300?) because what I think what would be really good is if we could execute "gradle build" from a fresh checkout and have the whole distribution built without any messing around. At the moment, that doesn't happen because there seems to be some cyclic dependencies in the 'core' source directories that have been defined. (Dennis/Peter correct me if I'm wrong...)
So I got to thinking about a way around that. My first reaction was to create a special gradle build would use all the source directories in one go and then use those same source directories as a template for JAR-ing the class files. (Example at end). But that feels more like a fudge than a fix. So my questions then become; 1) Have we separated things out into the correct directories? Do the cyclic inter-dependencies imply that we haven't? 2) If the directory splits are correct; should be introducing a core-core directory (possibly containing only interfaces) in order to break the cyclic dependencies. I just wanted to make sure that I'm on (what we can all agree) is the right track before I go any further. Thoughts anyone? Cheers. Tom Example of "special gradle build": Consider the following structure; foo/src/main/java/org/apache/river/A.java bar/src/main/java/org/apache/river/B.java The above source directories would produce the following; build/org/apache/river/A.class build/org/apache/river/B.class Then a clever/custom "jar" task would see that A.class comes from A.java which is in the foo directory and so would be put in foo.jar. And so on.