abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James M Snell <jasn...@gmail.com>
Subject Re: Working in progress on using Ivy for the ant build
Date Tue, 06 Feb 2007 00:35:25 GMT
This looks fine to me.

- James

Garrett Rooney wrote:
> So, one of the things I've been playing around with in my
> oh-so-copious spare time is making the Abdera build use Ivy to
> download its dependencies instead of the current hardcoded system
> we've currently got in the ant build.  I've sort of been feeling my
> way around, as I haven't been able to find very many good examples of
> how to set up multiple module builds in a single source tree with Ivy,
> but yesterday I came up with something pretty nice, so I figured I'd
> post a patch to see what people think.
> Note that this isn't done.  It only builds the core, parser, protocol,
> client, and extensions modules, and it doesn't have anything set up
> for publishing releases, doing retroweaver junk, etc.
> It's also not taking full advantage of Ivy's abilities, we should be
> using different configurations for things like saying that the junit
> stuff is only needed for tests, and splitting out big dependencies
> like jaxen (which appears to pull in the whole bloody world) so that
> you only get that if you're actually using it.  Finally, there's too
> much duplication of code in the module's build.xml files, I'd like a
> solution to that that either generates them from a common template or
> has them pull in the code they need from an external source, but I
> haven't gotten around to thinking about the best way to do that (it's
> just screaming for the import ant task, but that has "Beta Code, Stay
> Away" written all over it).
> A bit about how the build is structured.  There's a top level
> build.xml file that just handles bootstrapping ivy and then calls each
> module's build.xml.  In each module there's the actual logic for doing
> the builds and for handling dependency resolution.  When each module's
> build is complete it is published into a local ivy repository so that
> modules that depend on it can access it.  Assuming that you've
> bootstrapped ivy once it's possible to build modules independently of
> each other (just cd into core and type 'ant', for example), although
> you need to make sure its dependencies have already been built.
> The only things that actually vary for each module is the name of the
> project in the build.xml file and it's ivy.xml file, which is where
> you actually specify dependencies and things like that.  The top level
> ivyconf.xml configures Ivy to use the maven2 repos at repo1.maven.org
> and the incubator maven2 repository on people.apache.org, although at
> this point that isn't used for anything, it's just a hold over because
> the project I copied this logic from (the speedyfeed lab) used that to
> depend on Abdera itself
> Anyway, here's the current work in progress patch, in case anyone else
> is curious.  I'm not sure when I'm going to find some free time to
> continue this work, but hopefully it'll happen eventually.  Let me
> know what you think.
> -garrett

View raw message