Warbler 希望您在创建 WAR 时指定 RAILS_ENV。然后将其放入生成的 WAR 的 web.xml 中。
但是,如果您可以创建一个从环境中学习其 RAILS_ENV 的 WAR,您就可以创建一个可用于登台或生产的 WAR——换句话说,一个高级管理机制,可以在其中测试 WAR,然后无需更改即可部署.
最佳答案
JRuby-Rack 已经设置为在将内容放入 web.xml 之前从 RAILS_ENV 读取,所以这部分是黄金。你唯一需要打败的就是这个 rails.erb
合并为 META-INF/init.rb
的模板在 war 文件中:
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
关于jruby - 使用 JRuby Warbler,是否可以生成一个可以从环境变量中学习其 RAILS_ENV 的 WAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185419/