Thanks.
Turns out that what I really want to do is a) depend the child on the jar in
../lib, then b) bundle the child classes and ../lib/thejar.jar classes into an
uberjar - similar to what the maven shade plugin does. In this case, it's not
strictly necessary for the ../lib/thejar.jar to be wrapped as an artifact and
installed in the local repo -- but that's how I originally thought about the
problem.
On Aug 28, 2010, at 10:04 AM, Alex Boisvert wrote:
> Just to complement Antoine's answer, it's currently not possible to
> reference the parent project using project(...) since its definition is
> currently not complete at the point when it's evaluated. (Not saying it
> will be like this forever, just that it's a known limitation).
>
> Second, artifact(...) is only necessary for files you intend to get/put into
> a repository at some point. Otherwise, you can just reference the file
> directly. It's slightly easier.
>
> Last, another way to achieve what you want would be to write,
>
> define "parent" do
> LIBS = _('libs')
> ...
> define "child" do
> compile.with File.join(LIBS, 'foo.jar')
> end
> end
>
> alex
>
>
> On Sat, Aug 28, 2010 at 9:43 AM, Antoine Toulme
> <[email protected]>wrote:
>
>> I just committed a test (in SVN) to show how to do it.
>>
>> The secret words are "project.parent".
>>
>> On Sat, Aug 28, 2010 at 08:23, Mark Petrovic <[email protected]> wrote:
>>
>>> I have a project consisting of a parent and a child. The child needs a
>> jar
>>> artifact outside its directory space, but within the parent's space.
>> E.g.
>>>
>>> parent
>>> lib/thejar.jar
>>> child
>>> src/main/java
>>> etc.
>>>
>>> I have a working child build, referring to the thejar.jar thusly
>>>
>>> compile.with
>>> artifact('thegroup:thearti:jar:beta').from(file("../lib/thejar.jar"))
>>> ...
>>>
>>> but I don't like the ../lib in the path.
>>>
>>> I tried things like project("parent")._("lib/thejar.jar") ... but kept
>>> getting circular dependency errors.
>>>
>>> What is the Buildr Way to refer to the thejar.jar that is in a well-known
>>> location relative to the parent, but not necessarily the child?
>>>
>>> Thanks.
>>>
>>> --
>>> Mark Petrovic
>>>
>>>
>>>
>>
--
Mark Petrovic