buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roy Tinker <roytin...@gmail.com>
Subject Re: Package Buildr gem as a jar file
Date Wed, 11 Mar 2009 17:52:04 GMT
Ok, I have filed JRUBY-3487, marked for fix in JRuby 1.2:
http://jira.codehaus.org/browse/JRUBY-3487

Thanks
Roy

On Wed, Mar 11, 2009 at 8:38 AM, Assaf Arkin <arkin@intalio.com> wrote:

> On Tue, Mar 10, 2009 at 7:49 PM, Roy Tinker <roytinker@gmail.com> wrote:
>
> > Hello,
> >
> > I am looking to find a way to package Buildr as a single Jar file, to be
> > run
> > alongside the jruby-complete-1.2.0RC2.jar file. Our current system
> (running
> > on Ant -- I'm trying to move to Buildr) downloads the executables (Jar
> and
> > Ant-XML) from source control and runs them on the JVM on a local machine
> > (which could be anywhere in the company). You can imagine how
> inconvenient
> > it would be to store all of 100 or more files associated with Buildr in
> > source control. It would be so much easier to have it all located inside
> a
> > single Jar file.
> >
> > Nick Sieger has found a way of packaging gems as jars for JRuby -- see
> > http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar
> >
>
> *Note*: Unfortunately this technique does not yet work with gems that
> include Java code in embedded jar files (e.g., hpricot, mongrel,
> jruby-openssl). See JRUBY-3299 <http://jira.codehaus.org/browse/JRUBY-3299
> >.
> (We’d like to get this fixed for 1.1.7, but could use your help.)
>
> JRUBY 3229 is still open, and we do use jruby-openssl, so you should see
> Buildr failing when it tries to load that library.  However, it not finding
> bin/buildr sounds to me like a JRuby bug:
>
>  $ unzip -l buildr-gem.jar  | head
> Archive:  buildr-gem.jar
>  Length     Date   Time    Name
>  --------    ----   ----    ----
>        0  03-10-09 23:01   META-INF/
>       60  03-10-09 23:01   META-INF/MANIFEST.MF
>        0  03-10-09 22:56   bin/
>      344  03-10-09 22:55   bin/autospec
>      344  03-10-09 22:56   bin/buildr
>      371  03-10-09 22:55   bin/minitar
>      338  03-10-09 22:54   bin/rake
>
> $ jruby -rbuildr-gem.jar -S autospec
> /bin/sh: autotest: command not found
>
> $ jruby -rbuildr-gem.jar -S buildr
> buildr:1: undefined method `buildr' for JRuby::Commands:Class
> (NoMethodError)
>
> $ jruby -rbuildr-gem.jar -S minitar
>
> file:/Users/assaf/work/test/buildr-gem.jar!/gems/archive-tar-minitar-0.5.2/bin/minitar:19:
> undefined method `require_gem' for main:Object (NoMethodError)
>        from
>
> file:/Users/assaf/work/test/buildr-gem.jar!/gems/archive-tar-minitar-0.5.2/bin/minitar:19:in
> `load'
>        from /opt/local/share/java/jruby/bin/minitar:19
>
> (I have minitar installed separately, so it picks the bin from outside the
> JAR)
>
> Assaf
>
>
>
> > Has anyone done this before? -- or, does anyone have an idea of where I
> can
> > start?
> >
> > Here's what I have tried so far (with help from Nick's blog post) -- this
> > is
> > a transcript of my session.
> >
> > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -S gem list
> > >
> > > *** LOCAL GEMS ***
> > >
> > > rake (0.8.4)
> > > rspec (1.1.12)
> > > sources (0.0.1)
> > >
> > > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -S gem install -i
> ./buildr
> > > buildr --no-rdoc --no-ri
> > > JRuby limited openssl loaded. gem install jruby-openssl for full
> support.
> > > http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
> > > Successfully installed rake-0.8.1
> > > Successfully installed builder-2.1.2
> > > Successfully installed net-ssh-2.0.4
> > > Successfully installed net-sftp-2.0.1
> > > Successfully installed rubyzip-0.9.1
> > > Successfully installed highline-1.4.0
> > > Successfully installed rubyforge-1.0.0
> > > Successfully installed hoe-1.7.0
> > > Successfully installed Antwrap-0.7.0-java
> > > Successfully installed rspec-1.1.5
> > > Successfully installed xml-simple-1.0.11
> > > Successfully installed archive-tar-minitar-0.5.2
> > > Successfully installed jruby-openssl-0.2
> > > Successfully installed buildr-1.3.3-java
> > > 14 gems installed
> > >
> > > F:\jruby>jar cf buildr-gem.jar -C buildr .
> > >
> > > F:\jruby>dir
> > > Volume in drive F is DATA
> > > Volume Serial Number is ____-____
> > >
> > > Directory of F:\jruby
> > >
> > > 03/10/2009  07:41 PM    <DIR>          .
> > > 03/10/2009  07:41 PM    <DIR>          ..
> > > 03/06/2009  10:33 PM               279 build.rb
> > > 03/10/2009  07:40 PM    <DIR>          buildr
> > > *03/10/2009  07:42 PM         7,545,144 buildr-gem.jar*
> > > 03/09/2009  10:42 AM        10,279,665 jruby-complete-1.2.0RC2.jar
> > >               3 File(s)     17,825,088 bytes
> > >               3 Dir(s)  156,998,463,488 bytes free
> > >
> > > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -rbuildr-gem.jar -S gem
> > list
> > >
> > > *** LOCAL GEMS ***
> > >
> > > Antwrap (0.7.0)
> > > archive-tar-minitar (0.5.2)
> > > builder (2.1.2)
> > > buildr (1.3.3)
> > > highline (1.4.0)
> > > hoe (1.7.0)
> > > jruby-openssl (0.2)
> > > net-sftp (2.0.1)
> > > net-ssh (2.0.4)
> > > rake (0.8.4, 0.8.1)
> > > rspec (1.1.12, 1.1.5)
> > > rubyforge (1.0.0)
> > > rubyzip (0.9.1)
> > > sources (0.0.1)
> > > xml-simple (1.0.11)
> > >
> > > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -rbuildr-gem.jar -S
> buildr
> > > jruby: No such file, directory, or command -- buildr
> > >
> > > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -rbuildr-gem.jar
> build.rb
> > > build.rb:3:in `require': no such file to load -- buildr (LoadError)
> > >        from build.rb:3
> > >
> > > F:\jruby>java -jar jruby-complete-1.2.0RC2.jar -rbuildr-gem.jar -S irb
> > > irb(main):002:0> require 'rubygems'
> > > => true
> > > irb(main):003:0> require 'buildr'
> > > LoadError: no such file to load -- buildr
> > >        from
> > >
> >
> file:/F:/jruby/jruby-complete-1.2.0RC2.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:
> > > in `require'
> > >        from
> > >
> >
> file:/F:/jruby/jruby-complete-1.2.0RC2.jar!/META-INF/jruby.home/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:
> > > in `require'
> > >        from (irb):4
> > >
> >
> >
> > Thanks,
> > Roy
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message