5
Warbler希望您在創建WAR時指定RAILS_ENV。然後將其放入生成的WAR的web.xml中。但是,如果您可以創建一個從環境中學習其RAILS_ENV的WAR,則可以創建一個可用於分級或生產的WAR - 換句話說,可以測試WAR的上級管理機制,然後部署而不更改。使用JRuby Warbler,是否可以生成一個可以從環境變量中學習RAILS_ENV的WAR?
Warbler希望您在創建WAR時指定RAILS_ENV。然後將其放入生成的WAR的web.xml中。但是,如果您可以創建一個從環境中學習其RAILS_ENV的WAR,則可以創建一個可用於分級或生產的WAR - 換句話說,可以測試WAR的上級管理機制,然後部署而不更改。使用JRuby Warbler,是否可以生成一個可以從環境變量中學習RAILS_ENV的WAR?
在放入web.xml之前,JRuby-Rack已經設置爲從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
謝謝!順便說一下,META-INF/init.rb中Rails模板(rails.erb)的用途是什麼?刪除它會有什麼不利影響嗎? –