river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tom Hobbs <tvho...@googlemail.com>
Subject Modular Build
Date Thu, 19 May 2011 19:29:54 GMT
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.

Mime
View raw message