3

我有 JRuby Web 应用程序,它在部署框上的 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 任务。当我在我使用的开发环境(“rails server”)中运行我的 rake 任务时,它工作正常(我使用的是 rbenv,并且“rails server”确实调用了 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$ 

我的本地 gem 列表在部署框上看起来像这样(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 让我很伤心。

4

1 回答 1

2

默认情况下,Warbler 不包含您的 Rakefile,因此您必须将其添加到config/warble.rb. (warble config如果您还没有文件,请使用它来生成文件。)

于 2011-12-13T15:25:52.830 回答