You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@buildr.apache.org by Greg Lucas <gr...@gmail.com> on 2009/11/19 17:34:23 UTC
Re: installing non-archive artifacts
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
<al...@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 <gr...@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
>> <al...@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 <gr...@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
Re: installing non-archive artifacts
Posted by Greg Lucas <gr...@gmail.com>.
> Yes, I think a built-in support is warranted. Do you want to provide a
> patch? Otherwise, I can take care of it.
I'm new to ruby so it'll require some trial and error, but I'll take a
stab at it.
Thanks,
--
Greg Lucas
Re: installing non-archive artifacts
Posted by Alex Boisvert <al...@gmail.com>.
On Thu, Nov 19, 2009 at 8:34 AM, Greg Lucas <gr...@gmail.com> wrote:
> 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?
>
Yes, I think a built-in support is warranted. Do you want to provide a
patch? Otherwise, I can take care of it.
alex