buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Lucas" <greg.lu...@gmail.com>
Subject Re: installing non-archive artifacts
Date Thu, 19 Nov 2009 16:34:23 GMT
Just in case anyone else is looking to do the same (produce an XML  
artifact as build output):

I ended up defining a new package type for this after all. The  
artifact.from approach works (thanks for the fix!) but behaves a bit  
differently than I'd like - for example the file gets generated when you  
do 'buildr artifacts'.

So now I'm doing it this way:

def package_as_file(file_name)
   file file_name  => [...] do
     ... #generate the file
   end
end
def package_as_file_spec(spec)
   spec.merge({ :type=>:xml })
end

package(:file)

In my case generating the file means copying a template file and replacing  
various tokens. I wonder if there should be a built-in package type for  
files to simplify this a bit, so you could specify a src file and define a  
block to produce the target file?

~Greg


On Tue, 20 Oct 2009 02:44:43 -0400, Alex Boisvert  
<alex.boisvert@gmail.com> wrote:

> I created a tracker for this issue at
> https://issues.apache.org/jira/browse/BUILDR-330
>
> alex
>
> On Mon, Oct 19, 2009 at 5:41 PM, Greg Lucas <greg.lucas@gmail.com> wrote:
>
>> Thanks! I'm working around the issue for now by just doing e.g. 'buildr
>> uninstall install', but I'll poke around for another solution that  
>> doesn't
>> require the caller to be aware of this behavior.
>>
>> By the way, the approach I'm using came from here:
>>
>> http://buildr.apache.org/artifacts.html#install_upload
>>
>> It may be worth adding a note about this to that example as it was not
>> intuitive (to me, at least).
>>
>> Thanks,
>>
>> ~Greg
>>
>>
>>
>>
>>
>> On Mon, 19 Oct 2009 17:39:37 -0400, Alex Boisvert  
>> <alex.boisvert@gmail.com>
>> wrote:
>>
>>  I think that's a bug in the install task.  It should re-install even if
>>> the
>>> target already exists (same as upload) to follow existing Maven
>>> conventions.
>>>
>>> alex
>>>
>>>
>>> On Mon, Oct 19, 2009 at 11:29 AM, Greg Lucas <greg.lucas@gmail.com>
>>> wrote:
>>>
>>>  I've got a build that needs to install/upload an XML file as an  
>>> artifact.
>>>> I'm doing the following in my Rakefile:
>>>>
>>>> # produce the XML file
>>>> filter('src/...').into('target/...').using(...)
>>>>
>>>> # define an artifact and hook in to install/upload
>>>> xml_artifact = artifact(...).from('target/...')
>>>> install xml_artifact
>>>> upload xml_artifact
>>>>
>>>>
>>>> This works fine the first time, but any subsequent time a run the  
>>>> build
>>>> the
>>>> artifact is never updated in my local m2 repo. It looks like install  
>>>> only
>>>> works if the artifact is not already there. That's not consistent with
>>>> the
>>>> behavior using package.
>>>>
>>>> I suppose I could define a new packaging type for this but that seems
>>>> like
>>>> overkill. Is this the intended behavior of install? Is there a better  
>>>> way
>>>> to
>>>> deal with artifacts that are not in fact packaged archives?
>>>>
>>>> I'm using buildr 1.2.10 (as currently dictated by the Apache ODE 1.x
>>>> branch).

-- 
Greg Lucas

Mime
View raw message