rbenv, JRuby, Warble, Rake

У меня есть веб-приложение JRuby, которое работает на сервере Tomcat в окне развертывания. Я использовал Warble, чтобы упаковать его в файл WAR и развернуть на сервере, на котором у меня также установлен JRuby. Я запускаю rbenv и JRuby 1.6.4 как в окне разработки, так и в окне развертывания.

Мой Gemfile выглядит так:

source 'http://rubygems.org'
gem 'rails', '3.0.10'
gem 'rake', '0.8.7'
gem 'jquery-rails'
gem 'rest-client', '~> 1.6.7'


platforms :mri do
gem 'mysql2', '~> 0.2.11'
end


platforms :jruby do 
gem 'jruby-openssl'
gem 'activerecord-jdbcmysql-adapter'
gem 'warbler'
end

Я хотел бы запустить некоторые из моих пользовательских задач Rake. Когда я запускаю свои задачи rake в своей среде разработки, которую я использую («сервер rails»), она работает нормально (я использую rbenv, а «сервер rails» вызывает JRuby 1.6.4, и я запускаю «bundle exec rake abc: помощь").

Мой локальный список драгоценных камней выглядит так:

user@ubuntu:~/abc$ gem list --local

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.10)
actionpack (3.0.10)
activemodel (3.0.10)
activerecord (3.0.10)
activerecord-jdbc-adapter (1.2.0)
activerecord-jdbcmysql-adapter (1.2.0)
activeresource (3.0.10)
activesupport (3.0.10)
arel (2.0.10)
bouncy-castle-java (1.5.0146.1)
builder (2.1.2)
bundler (1.0.21)
erubis (2.6.6)
i18n (0.5.0)
jdbc-mysql (5.1.13)
jquery-rails (1.0.16)
jruby-jars (1.6.4)
jruby-openssl (0.7.4)
jruby-rack (1.0.10)
json (1.6.1 java)
mail (2.2.19)
mime-types (1.16)
polyglot (0.3.2)
rack (1.2.4)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.10)
railties (3.0.10)
rake (0.9.2, 0.8.7)
rdoc (3.11)
rest-client (1.6.7)
rubyzip (0.9.4)
thor (0.14.6)
treetop (1.4.10)
tzinfo (0.3.30)
warbler (1.3.2)
user@ubuntu:~/abc$ 

Когда приложение находится в Tomcat tomcat/webapps/abc/* в отдельном поле (которое было взорвано Tomcat), и я иду в корневой каталог, я получаю следующее:

jgodse@host:~.../webapps/abc/WEB-INF$ bundle exec rake bcp:help --trace
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2377:in `raw_load_rakefile'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/gems/rake-0.8.7/bin/rake:31:in `(root)'
org/jruby/RubyKernel.java:1073:in `load'
/home/jgodse/.rbenv/versions/jruby-1.6.4/lib/ruby/gems/1.9/bin/rake:19:in `(root)'
jgodse@host:~.../webapps/abc/WEB-INF$ 

Мой локальный список драгоценных камней выглядит так в окне развертывания (где приложение Rails развернуто в файле WAR).

jgodse@host:~/webapps/abc/WEB-INF$ gem list --local
abstract (1.0.0)
actionmailer (3.0.10)
actionpack (3.0.10)
activemodel (3.0.10)
activerecord (3.0.10)
activerecord-jdbc-adapter (1.2.0)
activerecord-jdbcmysql-adapter (1.2.0)
activeresource (3.0.10)
activesupport (3.0.10)
arel (2.0.10)
bouncy-castle-java (1.5.0146.1)
builder (2.1.2)
bundler (1.0.21)
erubis (2.6.6)
i18n (0.5.0)
jdbc-mysql (5.1.13)
jquery-rails (1.0.16)
jruby-jars (1.6.4)
jruby-openssl (0.7.4)
jruby-rack (1.0.10)
json (1.6.1 java)
mail (2.2.19)
mime-types (1.17.2, 1.16)
polyglot (0.3.2)
rack (1.2.4)
rack-mount (0.6.14)    
rack-test (0.5.7)
rails (3.0.10)
railties (3.0.10)
rake (0.9.2.2, 0.8.7)
rdoc (3.11) 
rest-client (1.6.7)
rubyzip (0.9.4)
thor (0.14.6)
treetop (1.4.10)
tzinfo (0.3.30)
warbler (1.3.2)
jgodse@host:~/webapps/abc/WEB-INF$ 

Чего мне не хватает, чтобы мои rake-задачи запускались из моего взорванного каталога файлов WAR?

Кроме того, я использую Rake 0.8.7, потому что версия 0.9.2 меня огорчила.


person Jay Godse    schedule 12.12.2011    source источник


Ответы (1)


Warbler по умолчанию не включает ваш Rakefile, поэтому вам придется добавить его в config/warble.rb. (Используйте warble config для создания файла, если у вас его еще нет.)

person Nick Sieger    schedule 13.12.2011
comment
#это то, что я должен сделать? config.includes FileList[./Rakefile] - person Jay Godse; 13.12.2011