Scratch that; it doesn’t work from Tomcat either. I’ve since updated to
the bundler 1.2 rc2 (which is supposed to be able to package :git gems)
but that doesn’t work either.
My new plan is to roll my own rake task to just pre-build all of the
gems prior to running warble. Unfortunately, I ran into the same kinds
of issues just trying to install rails from source (rails relies on a
:git hosted version of the sdoc gem).
bash-3.2$ cd rails #my local :git repo cloned from 3-1-stable
bash-3.2$ jruby -S bundle exec rake -T
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:801:in
load_spec_files': git://github.com/fxn/sdoc.git (at master) is not checked out. Please run
bundle install(Bundler::GitError) from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:381:in
local_specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:774:in
specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:178:in
resolve’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:176:in
each' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:176:in
resolve’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:113:in
specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:162:in
specs_for’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:151:in
requested_specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/environment.rb:23:in
requested_specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/runtime.rb:11:in
setup' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler.rb:116:in
setup’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/setup.rb:17
So bundler says to lease run bundle install
ok…
bash-3.2$ jruby -S bundle install
Using rake (0.9.2.2)
Using RedCloth (4.2.9)
Using multi_json (1.2.0)
Using activesupport (3.1.6) from source at .
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.6) from source at .
Using erubis (2.7.0)
Using rack (1.3.6)
Using rack-cache (1.2)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.4)
Using actionpack (3.1.6) from source at .
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.3.3)
Using actionmailer (3.1.6) from source at .
Using arel (2.2.3)
Using tzinfo (0.3.33)
Using activerecord (3.1.6) from source at .
Using activerecord-jdbc-adapter (1.2.2)
Using jdbc-mysql (5.1.13)
Using activerecord-jdbcmysql-adapter (1.2.2)
Using jdbc-postgres (9.1.901)
Using activerecord-jdbcpostgresql-adapter (1.2.2)
Using jdbc-sqlite3 (3.7.2)
Using activerecord-jdbcsqlite3-adapter (1.2.2)
Using activeresource (3.1.6) from source at .
Using bcrypt-ruby (3.0.1)
Using bouncy-castle-java (1.5.0146.1)
Using bundler (1.2.0.rc.2)
Using execjs (1.4.0)
Using rack-ssl (1.3.2)
Using json (1.7.4)
Using rdoc (3.12)
Using thor (0.14.6)
Using railties (3.1.6) from source at .
Using jquery-rails (2.0.3)
Using jruby-openssl (0.7.7)
Using json_pure (1.7.4)
Using memcache-client (1.8.5)
Using metaclass (0.0.1)
Using mocha (0.10.5)
Using nokogiri (1.5.5)
Using rails (3.1.6) from source at .
Using sdoc (0.3.15) from git://github.com/fxn/sdoc.git (at master)
Using uglifier (1.2.4)
Using w3c_validators (1.2)
Your bundle is complete! Use bundle show [gemname]
to see where a
bundled gem is installed.
Now to try again…
bash-3.2$ jruby -S bundle exec rake -T
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:801:in
load_spec_files': git://github.com/fxn/sdoc.git (at master) is not checked out. Please run
bundle install(Bundler::GitError) from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:381:in
local_specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/source.rb:774:in
specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:178:in
resolve’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:176:in
each' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:176:in
resolve’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:113:in
specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:162:in
specs_for’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:151:in
requested_specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/environment.rb:23:in
requested_specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/runtime.rb:11:in
setup' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler.rb:116:in
setup’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/setup.rb:17
So, bundler isn’t even self-consistent with its own instructions. (Why
doesn’t bundler check the location where it installs gems before
complaining that a gem isn’t installed?)
If I use deployment mode, bundler is able to find the gems it
installs:
bash-3.2$ jruby -S bundle install --deployment
Fetching gem metadata from http://rubygems.org/…
Fetching git://github.com/fxn/sdoc.git
Installing rake (0.9.2.2)
Installing RedCloth (4.2.9)
Installing multi_json (1.2.0)
Using activesupport (3.1.6) from source at .
Installing builder (3.0.0)
Installing i18n (0.6.0)
Using activemodel (3.1.6) from source at .
Installing erubis (2.7.0)
Installing rack (1.3.6)
Installing rack-cache (1.2)
Installing rack-mount (0.8.3)
Installing rack-test (0.6.1)
Installing hike (1.2.1)
Installing tilt (1.3.3)
Installing sprockets (2.0.4)
Using actionpack (3.1.6) from source at .
Installing mime-types (1.19)
Installing polyglot (0.3.3)
Installing treetop (1.4.10)
Installing mail (2.3.3)
Using actionmailer (3.1.6) from source at .
Installing arel (2.2.3)
Installing tzinfo (0.3.33)
Using activerecord (3.1.6) from source at .
Installing activerecord-jdbc-adapter (1.2.2)
Installing jdbc-mysql (5.1.13)
Installing activerecord-jdbcmysql-adapter (1.2.2)
Installing jdbc-postgres (9.1.901)
Installing activerecord-jdbcpostgresql-adapter (1.2.2)
Installing jdbc-sqlite3 (3.7.2)
Installing activerecord-jdbcsqlite3-adapter (1.2.2)
Using activeresource (3.1.6) from source at .
Installing bcrypt-ruby (3.0.1)
Installing bouncy-castle-java (1.5.0146.1)
Installing execjs (1.4.0)
Installing rack-ssl (1.3.2)
Installing json (1.7.4)
Installing rdoc (3.12)
Installing thor (0.14.6)
Using railties (3.1.6) from source at .
Installing jquery-rails (2.0.3)
Installing jruby-openssl (0.7.7)
Installing json_pure (1.7.4)
Installing memcache-client (1.8.5)
Installing metaclass (0.0.1)
Installing mocha (0.10.5)
Installing nokogiri (1.5.5)
Using bundler (1.2.0.rc.2)
Using rails (3.1.6) from source at .
Using sdoc (0.3.15) from git://github.com/fxn/sdoc.git (at master)
Installing uglifier (1.2.4)
Installing w3c_validators (1.2)
Your bundle is complete! It was installed into ./vendor/bundle
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri
data:
<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
= 1.9.2 : nothing to do! Yay!
Now to try again…
bash-3.2$ jruby -S bundle exec rake -T
rake build # Build gem files for all projects
rake clobber_rdoc # Remove RDoc HTML files
rake default # Run all tests by default
rake gem # Run gem task for all projects
rake install # Install gems for all projects.
rake package # Run package task for all projects
rake publish_docs # Publishes docs, run this AFTER a new stable tag
has been pushed
rake rdoc # Build RDoc HTML files
rake release # Release all gems to gemcutter and create a tag
rake rerdoc # Rebuild RDoc HTML files
rake smoke # Smoke-test all projects
rake test # Run test task for all projects
rake test:isolated # Run test:isolated task for all projects
rake update_versions # Bump all versions to match version.rb
Success!!
Now to build rails…
bash-3.2$ jruby -S bundle exec rake build
rm -f dist/activesupport-3.1.6.gem
cd activesupport && gem build activesupport.gemspec && mv
activesupport-3.1.6.gem /T2/rails/dist/
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/spec_set.rb:90:in
materialize': Could not find rake-0.9.2.2 in any of the sources (Bundler::GemNotFound) from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/spec_set.rb:83:in
map!’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/spec_set.rb:83:in
materialize' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:113:in
specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:162:in
specs_for' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/definition.rb:151:in
requested_specs’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/environment.rb:23:in
requested_specs' from /opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/runtime.rb:11:in
setup’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler.rb:116:in
`setup’
from
/opt/local/share/java/jruby/lib/ruby/gems/1.8/gems/bundler-1.2.0.rc.2/lib/bundler/setup.rb:17
rake aborted!
Command failed with status (1): [cd activesupport && gem build
activesuppor…]
Tasks: TOP => build => all:build => activesupport:build =>
activesupport:dist/activesupport-3.1.6.gem
(See full trace by running task with --trace)
And we get a new bundler error. (I think I spend more time
troubleshooting Bundler than all other aspects of my project
combined…)
Any advise is much appreciate.