4

Warbler 希望您在创建 WAR 时指定 RAILS_ENV。然后将其放入生成的 WAR 的 web.xml 中。

但是,如果您可以创建一个从环境中学习其 RAILS_ENV 的 wAR,那么您可以创建一个可用于登台或生产的 WAR - 换句话说,一种高级管理制度,可以在其中测试和部署 WAR 而无需更改.

4

1 回答 1

3

JRuby-Rack 已经设置为在将内容放入 web.xml 之前从 RAILS_ENV 读取,因此该部分是金色的。你唯一需要打败的是这个rails.erb模板,它被合并到META-INF/init.rbwar文件中:

ENV['RAILS_ENV'] = '<%= config.webxml.rails.env %>'

目前还没有真正的好方法可以做到这一点,但是您可以覆盖Warbler::Jar#add_init_file顶部的以下内容config/warble.rb以删除 Rails 模板:

class Warbler::Jar
  alias_method :orig_add_init_file, :add_init_file
  def add_init_file(config)
    config.init_contents.delete("#{config.warbler_templates}/rails.erb") if config.init_contents
    orig_add_init_file(config)
  end
end
于 2011-11-18T20:00:28.260 回答