Take a look at the "Creating Extensions" section here:
http://buildr.apache.org/extending.html
I think it would be applicable to what you are doing.
alex
On Fri, Feb 6, 2009 at 2:02 PM, Rhett Sutphin <rhett@detailedbalance.net>wrote:
> [Apologies if you see this twice -- I accidentally sent it to the old list.
> It hasn't shown up in the archives so I'm resending it.]
>
> Hi,
>
> Synopsis: I'm having a problem with a buildfile where, if I define the
> resource paths outside of the initial project definition block, the resource
> target directories are not included on the classpath when running tests.
> The resources are copied to target (during the compile and test:compile
> tasks) and packaged correctly (if I do package test=no), but they are not
> visible to the tests.
>
> Details: I am converting an existing project to use buildr. It stores its
> resources alongside the code, so in each of the subprojects I have lines
> like these:
>
> resources.from(_("src/main/java")).exclude("**/*.java")
> test.resources.from(_("src/test/java")).exclude("**/*.java")
>
> Hoping to DRY this up a bit, I replaced those repeated blocks with this
> code at the end of my buildfile:
>
> projects.each do |p|
> if File.exist?(p._("src/main/java"))
> # All resources come from source path
> p.resources.from(p._("src/main/java")).exclude("**/*.java")
> p.test.resources.from(p._("src/test/java")).exclude("**/*.java")
> end
> end
>
> This introduced the problem I described in the synopsis. Two questions:
>
> - Is this a bug I should report on the issue tracker? Or is it expected
> behavior?
>
> - Is there a better way to do what I'm trying to do?
>
> Thanks,
> Rhett
>