Bundle my code?  Heck yes!

On Aug 27, 2010, at 9:44 AM, Antoine Toulme wrote:

> Nice! Retweeted with the buildr account, and if you want tomorrow I'll
> bundle your code as a buildr extension.
> 
> On Fri, Aug 27, 2010 at 09:23, Mark Petrovic <[email protected]> wrote:
> 
>> Thanks.  A good first step into using Buildr.
>> 
>> http://radioae6rt.wordpress.com/2010/08/27/a-buildr-task-for-jaxb-xjc/
>> 
>> 
>> On Aug 26, 2010, at 9:35 PM, Antoine Toulme wrote:
>> 
>>> Looking very good. You can externalize the artifact definitions to make
>> it
>>> easy to change versions or for people to add or edit jars, like the
>>> hibernate addon.
>>> 
>>> The file(xjcOutput => sources) instruction is a Rake task definition. You
>>> create a file task associated with the path xjcOutput, which is added to
>> the
>>> prerequisites of the sources task. You won't find that info in the
>> Pickaxe,
>>> it's pretty custom stuff.
>>> 
>>> Antoine
>>> 
>>> 
>>> 
>>> On Thu, Aug 26, 2010 at 21:18, Mark Petrovic <[email protected]>
>> wrote:
>>> 
>>>> Thank you very much.
>>>> 
>>>> This works:
>>>> 
>>>>  xjcOutput=path_to('target/generated-sources/xjc')
>>>>  xjc = file(xjcOutput => sources) do |dir|
>>>>    ant('xjc') do |ant|
>>>>      mkdir_p xjcOutput
>>>>      cp = Buildr.artifacts("javax.xml.bind:jaxb-api:jar:2.2.1",
>>>> "com.sun.xml.bind:jaxb-impl:jar:2.2.1",
>>>> 
>> "com.sun.xml.bind:jaxb-xjc:jar:2.2.1").each(&
>>>> :invoke).map(& :name).join(File::PATH_SEPARATOR)
>>>>      ant.taskdef :name=>"xjc", :classname=>"com.sun.tools.xjc.XJCTask",
>>>> :classpath=>cp
>>>>      ant.xjc :schema=>path_to("src/main/resources/c.xsd"),
>>>> :destdir=>path_to(xjcOutput), :package=>"org.foo.api"
>>>>    end
>>>>  end
>>>> 
>>>> How does it look?
>>>> 
>>>> 
>>>> I'm not really sure what "file(xjcOutput => sources)" actually does, or
>> how
>>>> to interpret it;  back to the Pickaxe book!
>>>> 
>>>> 
>>>> 
>>>> On Aug 26, 2010, at 8:27 PM, Antoine Toulme wrote:
>>>> 
>>>>> Hello Marc,
>>>>> 
>>>>> a few remarks:
>>>>> 1. "#{xjcOutput}" is equivalent to xjcOutput. That should simplify your
>>>>> code.
>>>>> 2. Why bother with mentioning local artifacts ? Do you know which jar
>> you
>>>>> need ? Are they hosted on a maven repository ?
>>>>> If yes, you can do :classpath=>
>>>>> Buildr.artifacts("com.sun.jaxb:jaxb:jar:1.2.3",
>>>>> 
>>>> 
>> "com.sun.jaxb:jaxb-impl:jar:1.2.3").map(&:to_s).join(File::PATH_SEPARATOR)
>>>>> Your code will work on any machine then.
>>>>> 
>>>>> 
>>>>> On Thu, Aug 26, 2010 at 18:53, Mark Petrovic <[email protected]>
>>>> wrote:
>>>>> 
>>>>>> Hi.  I'm new to Buildr, coming from Ant and Maven.  I've read the
>> black
>>>>>> Buildr book, and now I'm attempting to do some simple stuff with the
>>>> JAXB
>>>>>> XJC task.  Here's what I have so far:
>>>>>> 
>>>>>> ...
>>>>>> compile :xjc
>>>>>> package :jar, :id => 'vzapi'
>>>>>> 
>>>>>> task :xjc do
>>>>>>       begin
>>>>>>       ant('xjc') do |ant|
>>>>>>         xjcOutput='target/generated-sources/xjc'
>>>>>>         rm_rf "#{xjcOutput}"
>>>>>>         mkdir_p "#{xjcOutput}"
>>>>>> 
>>>>>> 
>>>> 
>> t=Dir.entries("#{ENV['HOME']}/tools/jaxb-ri/lib").join(File::PATH_SEPARATOR)
>>>>>>         puts t
>>>>>>         ant.taskdef :name=>"xjc",
>>>>>> :classname=>"com.sun.tools.xjc.XJCTask", :classpath=>"#{t}"
>>>>>>         ant.xjc :schema=>"src/main/resources/c.xsd",
>>>>>> :destdir=>"#{xjcOutput}", :package=>"org.foo.api"
>>>>>>       end
>>>>>>     end
>>>>>> end
>>>>>> 
>>>>>> where you can see my horribly clumsy, two-left-foot attempts to put
>>>>>> together a classpath for the Ant taskdef.  The JAXB jars are in
>>>>>> ENV['HOME']}/tools/jaxb-ri/lib/*.jar.
>>>>>> 
>>>>>> Can someone suggest the "Buildr way" to build this classpath?  I've
>>>> studied
>>>>>> the examples referred to here
>>>>>> http://www.mail-archive.com/[email protected]/msg01115.html but
>>>> I'm
>>>>>> still not quite getting it.  I'm learning Ruby as I go, having read
>> the
>>>>>> Pickaxe book, but where not a lot of it has sunk in yet.
>>>>>> 
>>>>>> Thanks!
>>>>>> 
>>>>>> --
>>>>>> Mark Petrovic
>>>>>> 
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>>> --
>>>> Mark Petrovic
>>>> 
>>>> 
>>>> 
>> 
>> 
>> --
>> Mark Petrovic
>> 
>> 
>> 


--
Mark Petrovic


Reply via email to