buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Assaf Arkin" <ar...@intalio.com>
Subject Re: buildfile per component
Date Mon, 30 Jun 2008 04:12:23 GMT
On Sun, Jun 29, 2008 at 2:36 PM, Ittay Dror <ittay.dror@gmail.com> wrote:
>
>
>
> Assaf Arkin wrote:
>>
>> On Fri, Jun 27, 2008 at 10:12 PM, Ittay Dror <ittay.dror@gmail.com> wrote:
>>>
>>>
>>>
>>> Assaf Arkin wrote:
>>>>
>>>> On Wed, Jun 25, 2008 at 1:23 AM, Ittay Dror <ittay.dror@gmail.com>
>>>> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I have a large source tree with many modules grouped into components.
>>>>> Each
>>>>> developer knows only one component, so I don't want them to checkout
>>>>> and
>>>>> build the rest. However, the nightly build does need to checkout all.
>>>>>
>>>>> How I can break the single buildfile into several so that the top
>>>>> buildfile
>>>>> just includes the ones in each component and they in turn define all
>>>>> modules
>>>>> (that is, i don't aim at a buildfile per module). Each one should be
>>>>> independent so I can checkout the component directory and build the
>>>>> component. Note that the top buildfile does have its own logic of
>>>>> defining
>>>>> the order of build according dependencies between sub buildfiles (if
>>>>> used
>>>>> independently they reference each other as artifacts) and creating
>>>>> bundles
>>>>> containing all components.
>>>>
>>>> I have not tried this, but here's something worth trying and if it
>>>> ends up working, we can turn this into a feature.
>>>>
>>>> Say the larger buildfile has a project master, and sub-directories foo
>>>> and bar, each with its own buildfile.  I'm guessing loading and
>>>> evaluating these inside the master project could work, like so:
>>>>
>>>> define 'master' do
>>>>   eval File.load('foo/buildfile')
>>>>   eval File.load('bar/buildfile')
>>>> end
>>>>
>>>> Assaf
>>>>
>>> But then, if I cd to foo and try to build, buildr will see the buildfile
>>> and
>>> will use it as master, right? I think this will mess up project names.
>>> Maybe
>>> change the names to subbuildfile?
>>
>> Buildr looks for the buildfile in the current directory (up the tree
>> if there's none in the current directory), so inside foo you would
>> only get foo's buildfile to load.  At that point, you're like every
>> other component developer who only sees one buildfile and not the
>> entire set.
>>
>> Assaf
>>
>
> can I reference 'bar' as a dependency? usually this is done with
> 'project()', but if i build in 'foo', then 'bar' is unknown. in maven, since
> a dependency is always via group,artifact,version ids, it does not matter,
> as long as 'bar' is in the local repository. how can i get the same behavior
> in buildr?

You don't change the buildfile.  If right now foo's buildfile
references bar by its artifact specification, it keeps doing the same
thing.

When you use the project reference it also references the artifact by
its specification, it's just a very convenient shortcut which you can
use inside, but not across buildfiles.

Assaf

>
> thanks,
> ittay
>
>
> Assaf Arkin wrote:
>>
>>
>>>
>>>
>>>
>>> Assaf Arkin wrote:
>>>>
>>>>
>>>>>
>>>>> Thank you,
>>>>> Ittay
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/buildfile-per-component-tp18107287p18107287.html
>>>>> Sent from the Buildr - User mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/buildfile-per-component-tp18107287p18167540.html
>>> Sent from the Buildr - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/buildfile-per-component-tp18107287p18185612.html
> Sent from the Buildr - User mailing list archive at Nabble.com.
>
>

Mime
View raw message