The new build system will consist of a few shared build files, and a per-subproject build.xml file. This leads to the obvious question of where the shared build files should live. There are basically two options, as I see it:
1) In a 'build' subproject. This is the cleaner option, and the one I prefer. It does mean that an additional subproject has be to checked out, but that would be true for all but one subproject in any case, and an independent 'build' subproject is pretty much guaranteed to be a lot smaller than any other subproject.
2) In 'core'. The only advantage I see to putting the build system in 'core' is that a single checkout would be enough to build 'core' itself. However, to build any other subproject, 'core' would need to be checked out as well. The main disadvantage I see to this option is that if another subproject comes along that we need to build before 'core', it would be icky to have that subproject depend on 'core' when 'core' depends on it. (This might sound like an unlikely scenario, but I actually believe that's exactly what would happen if we bring StrutsTestCase into the fold, since we'd need to build that before 'core' could be built and tested.)
Hmm..this raises an interesting issue. When you mention build dependencies, do you really mean build one project then another in the same process, or just that one project would depend on a jar from another? In the case of StrutsTestCase, 1) I don't like Core being dependent on a subproject, so perhaps another neutral mock library should be used, and 2) even if the Core build depended on StrutsTestCase, it would be the latter and use a jar.
As for the build organization, I lean towards 1, but I don't really feel strongly one way or another.
Don
So what do people think? My preference, as I said, is (1).
-- Martin Cooper
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
