abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Duncan" <stephen.dun...@gmail.com>
Subject Re: Working in progress on using Ivy for the ant build
Date Sun, 28 Jan 2007 15:57:29 GMT
Can you resend the patch, it doesn't seem to have made it with your e-mail. ;)

-Stephen

On 1/28/07, Garrett Rooney <rooneg@electricjellyfish.net> 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
>
>


-- 
Stephen Duncan Jr
www.stephenduncanjr.com

Mime
View raw message