buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grotzke <martin.grot...@javakaffee.de>
Subject Re: How to 'fix' bad pom when using transitive()
Date Mon, 02 Mar 2009 18:14:00 GMT
Ok, now I have it like this:

artifact 'javax.ejb:ejb:pom:3.0' do |f|
  # Create the directory
  if(!(File.exist? f.name))
    File.makedirs(File.dirname(f.name))
    f = File.new(f.name, "w")
    f.write("<project>\n"+
      "  <modelVersion>4.0.0</modelVersion>\n"+
      "  <groupId>javax.ejb</groupId>\n"+
      "  <artifactId>ejb</artifactId>\n"+
      "  <version>3.0</version>\n"+
      "</project>\n")
    f.close
  end
end

I added this to the How-Tos:
http://cwiki.apache.org/confluence/display/BUILDR/How+to+create+a+non-existent+pom

Cheers,
Martin


On Mon, 2009-03-02 at 02:14 -0800, Assaf Arkin wrote:
> 
> On Mar 2, 2009, at 1:30 AM, Martin Grotzke  
> <martin.grotzke@javakaffee.de> wrote:
> 
> > Hi Assaf,
> >
> > thanx for the pointer. Now it looks like this:
> >
> > artifact 'javax.ejb:ejb:pom:3.0' do |f|
> >  # Create the directory first
> >  Dir.mkdir(File.dirname(f.name))
> >  touch f.name
> > end
> >
> > and there's an empty ejb-3.0.pom at the expected place.
> >
> > However, now the build fails with this error:
> >
> > [Failed] Your build failed with an error: /home/grotzke/proj/ 
> > freiheit/mywebapp:
> > File does not exist: .
> > buildr aborted!
> > File does not exist: .
> > /usr/lib/ruby/gems/1.8/gems/xml-simple-1.0.11/lib/xmlsimple.rb: 
> > 977:in `find_xml_file'
> > /usr/lib/ruby/gems/1.8/gems/xml-simple-1.0.11/lib/xmlsimple.rb: 
> > 168:in `xml_in'
> > /usr/lib/ruby/gems/1.8/gems/xml-simple-1.0.11/lib/xmlsimple.rb: 
> > 203:in `xml_in'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 73:in `initialize'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 55:in `new'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 55:in `load'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 47:in `load'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 43:in `load'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 99:in `dependencies'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 88:in `map'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 88:in `dependencies'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/packaging/ 
> > artifact.rb:654:in `transitive'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/java/pom.rb: 
> > 87:in `inject'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/packaging/ 
> > artifact.rb:649:in `each'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/packaging/ 
> > artifact.rb:649:in `inject'
> > /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/packaging/ 
> > artifact.rb:649:in `transitive'
> > ./dependencies.rb:35
> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in  
> > `gem_original_require'
> > /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
> >
> >
> > When I create the pom file with correct content everything's fine.
> >
> > So, for me as a ruby-nuby: what's the easiest way to create an xml  
> > file?
> 
> 
> write "<pom>...</pom>"
> 
> If you need something more generic that can escape characters, quote  
> attributed and such, use Builder (with an er). Buildr uses it for POM  
> and IDE files. For simpler cases, strings are easier to use.
> 
> Assaf
> 
> 
> 
> >
> >
> > Thanx && cheers,
> > Martin
> >
> >
> >
> >
> > On Mon, 2009-03-02 at 00:54 -0800, Assaf Arkin wrote:
> >> On Mon, Mar 2, 2009 at 12:02 AM, Martin Grotzke <
> >> martin.grotzke@javakaffee.de> wrote:
> >>
> >>> Hi Daniel,
> >>>
> >>> When I try
> >>>
> >>> artifact 'javax.ejb:ejb:pom:3.0' do |f|
> >>>  touch f
> >>
> >>
> >> touch f.name
> >>
> >> Assaf
> >>
> >>
> >>>
> >>> end
> >>>
> >>> (as buildr tries to download the pom first)
> >>>
> >>> I get this error:
> >>>
> >>> [Failed] Your build failed with an error:
> >>> /home/grotzke/proj/freiheit/mywebapp:
> >>> undefined method `to_str' for #<Buildr::Artifact:0xb79c31c0>
> >>> buildr aborted!
> >>> undefined method `to_str' for #<Buildr::Artifact:0xb79c31c0>
> >>> /usr/lib/ruby/1.8/fileutils.rb:1388:in `fu_list'
> >>> /usr/lib/ruby/1.8/fileutils.rb:1388:in `map'
> >>> /usr/lib/ruby/1.8/fileutils.rb:1388:in `fu_list'
> >>> /usr/lib/ruby/1.8/fileutils.rb:1019:in `touch'
> >>> ./dependencies.rb:25
> >>> /home/grotzke/.gem/ruby/1.8/gems/rake-0.8.1/lib/rake.rb:544:in  
> >>> `call'
> >>> /home/grotzke/.gem/ruby/1.8/gems/rake-0.8.1/lib/rake.rb:544:in  
> >>> `execute'
> >>> /home/grotzke/.gem/ruby/1.8/gems/rake-0.8.1/lib/rake.rb:541:in  
> >>> `each'
> >>> /home/grotzke/.gem/ruby/1.8/gems/rake-0.8.1/lib/rake.rb:541:in  
> >>> `execute'
> >>> /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/core/ 
> >>> application.rb:482:in
> >>> `invoke_with_call_chain'
> >>> /usr/lib/ruby/gems/1.8/gems/buildr-1.3.3/lib/buildr/core/ 
> >>> application.rb:468:in
> >>> `synchronize'
> >>>
> >>> Do I have to create the pom.xml with the appropriate content, or  
> >>> what does
> >>> that mean?
> >>>
> >>> Thanx && cheers,
> >>> Martin
> >>>
> >>>
> >>> On Sun, 2009-03-01 at 17:37 -0600, Daniel Spiewak wrote:
> >>>> You could define the artifact task for that particular signature to
> >>>> just create a dummy JAR file.  I forget the syntax, but I think  
> >>>> it is
> >>>> something like this:
> >>>>
> >>>> artifact 'javax.ejb:ejb:jar:3.0' do |f|
> >>>>   touch f
> >>>> end
> >>>>
> >>>> Daniel
> >>>>
> >>>> On Mar 1, 2009, at 5:32 PM, Martin Grotzke
> >>>> <martin.grotzke@javakaffee.de> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I just want to depend on spring-2.5.6 using transitive().
> >>>>>
> >>>>> Unfortunately, spring declares a dependency on 'javax.ejb:ejb:jar:
> >>>>> 3.0',
> >>>>> which seems to be not available in public maven repos.
> >>>>>
> >>>>> I already tried to do s.th. like this:
> >>>>>
> >>>>> transitive(SPRING).reject { |a| a.group == 'javax.ejb' }
> >>>>>
> >>>>> but unfortunately buildr tries to get the javax.ejb:ejb pom, so
 
> >>>>> that
> >>>>> my
> >>>>> build fails with
> >>>>>
> >>>>> buildr aborted!
> >>>>> Failed to download javax.ejb:ejb:pom:3.0
> >>>>>
> >>>>> Is there a way to fix this issue, e.g. with 'fixing' the pom  
> >>>>> when it's
> >>>>> loaded via transitive?
> >>>>>
> >>>>> Thanx && cheers,
> >>>>> Martin
> >>>>>
> >>>>
> >>>
> 

Mime
View raw message