buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Assaf Arkin <ar...@intalio.com>
Subject Re: Resources & post-processing project definitions
Date Mon, 09 Feb 2009 06:46:33 GMT
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?


This is the expected behavior. The test task is configured last thing in the
project definition, adding resource.target if resources are copied from any
source directories. All these project definitions are evaluated during the
call to project, so your code executes afterwards, too late to have an
affect.

What you want in this case is an extension that uses before_define to affect
the project definition earlier in its life. Then at the end, the test task
will configure itself properly.

Assaf


>
>
> - Is there a better way to do what I'm trying to do?
>
> Thanks,
> Rhett
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message