ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Oulds <>
Subject Re: Best Practice for producing customised builds
Date Thu, 03 Feb 2011 16:30:57 GMT

On 03/02/2011 15:33, Niklas Matthies wrote:
> On Thu 2011-02-03 at 11:14h, Jonathan Oulds wrote on ivy-user:
> :
>> I have an ivy module called FooBar that produces the artefact FooBar.msi
>> FooBar depends upon the modules Foo and Bar.  Foo exports the artefact
>> Foo.exe, while Bar exports Bar.h under an interface configuration and
>> Bar.dll under an implementation configuration.
>> So to summarise my dependencies are:
>> FooBar ->  Foo
>> FooBar ->  Bar [impl]
>> Foo ->  Bar [iface]
>> Now I want to produce a proof of concept release called FooBarPoC that
>> includes BarPoc.dll, however I don't want to make any changes that will
>> break my original FooBar build.  So my options seem to be.
>> Option1:
>> Create a new BarPoC module, but keep the original Foo dependency.  This
>> seems wrong as the relationship between the interface and implementation
>> of Bar and BarPoC are no longer explicit.
> How about you let BarPoC also depend on Bar [iface], so it gets its
> Bar.h from Bar instead of duplicating it?
> -- Niklas Matthies

Thank you for your reply.  If I understand you correctly you are 
suggesting that instead of the follow dependencies...

FooBarPoC -> Foo
FooBarPoC -> BarPoC [impl]
Foo -> Bar [iface]

... I use

FooBarPoC -> Foo
FooBarPoC -> BarPoC [impl]
Foo -> BarPoC [iface] -> Bar [iface]

In this way I can get Bar.h via the transitive dependency.  The problem 
is that I have to modify the Ivy file within the Foo source code just to 
get Bar.h via a different route.  This will require duplicating the Foo 
module which is something I was hoping to avoid.

View raw message