2011-12-12 35 views
3

我有JRuby web應用程序,它運行在部署框中的Tomcat服務器上。我使用Warble將其打包成WAR文件,並將其部署到安裝了JRuby的服務器上。我在開發盒和部署盒上運行rbenv和JRuby 1.6.4。rbenv,JRuby,Warble,Rake

我的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:幫幫我」)。

我當地的寶石的名單看起來是這樣的:

[email protected]:~/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) 
[email protected]:~/abc$ 

當應用程序是在Tomcat的Tomcat/webapps /下ABC/*在一個單獨的盒子,(這是由Tomcat的爆炸),和我去到根目錄下,我得到如下:

[email protected]:~.../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)' 
[email protected]:~.../webapps/abc/WEB-INF$ 

我的本地寶石表看起來是在部署框(其中Rails應用程序部署在一個WAR文件)。

[email protected]:~/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) 
[email protected]:~/webapps/abc/WEB-INF$ 

我錯過了什麼讓我的rake任務運行到爆炸WAR文件目錄中?

此外,我使用Rake 0.8.7,因爲0.9.2讓我感到悲傷。

回答

2

鳴鳥默認不包含您的Rakefile,因此您必須將其添加到config/warble.rb。 (使用warble config生成文件,如果您還沒有它。)

+1

#這是我應該做的嗎? config.includes FileList [「./ Rakefile」] –

+0

感謝Nick。那樣做了。 –

相關問題