JRuby1.5.1下執行Rails2.2.2應用

aihua發表於2010-08-04

    JRuby1.5.1下執行Rails2.2.2應用

 

最近要把我的一個RoR專案賣給客戶,為了進行產權保護,研究了一下JRuby的打包,記錄如下

 

 


 

  1. 下載/安裝JRuby
    • JRuby 下載地址 http://jruby.org/download
    • 下載Windows版本,然後安裝到C盤下
      • 安裝的時候自動設定PATH,方便不少.
      • 執行 jruby -v 驗證安裝成功
  2. 安裝Rails 2.2.2
    1. jruby -S gem install rails -v 2.2.2
  3. 安裝JDBC驅動
    1. JDBC
      • jruby -S gem install activerecord-jdbc-adapter 
    2. Sqlite3
      • jruby -S gem install activerecord-jdbcsqlite3-adapter 
    3. MySQL
      • jruby -S gem install activerecord-jdbcmysql-adapter
  4. 安裝Sqlite3資料庫
    1. 下載Sqlit3
    2. 放置sqlite3.exe和sqlite3.dll到JRUBY/bin下
  5. 建立Rails 專案
    • > jruby -S rails myapp
    • > cd myapp
    • # 生成一個介面
    • > jruby script/generate scaffold post title:string body:text published:boolean
    • #建立資料庫,如果失敗,檢查sqlite3.exe是否在PATH中
    • > jruby -S rake db:create
    • #匯入資料
    • > jruby -S rake db:migrate
    • #啟動伺服器
    • > jruby script/server
    • #測試地址1
    • http://localhost:3000
    • #測試地址2
    • http://localhost:3000/posts
  6. 修改config
    1. myapp/config/database.yml
    2.  
  7. 利用warbler打包
    • 安裝
    •    > jruby -S gem install warbler
    • 生成config配置
    •    > jruby -S warble config
    • 修改warble.rb配置
    •      
    • 生成war包
    •    > jruby -S warble war
    • 把生成的myapp.war放在tomcat下執行。
    • 雖然可以在Tomcat下執行Rails程式,但是開啟War包一看,還是rb程式碼。所以還要用AOT模式重新打一次
  8. 利用warbler進行AOT模式打包
    1. 下載唐力群修改過得warbler包,地址為 http://github.com/crazycode/warbler
    2. 下載後解壓縮,覆蓋C:/jruby-1.5.1/lib/ruby/gems/1.8/gems/warbler-1.1.0下內容
    3. 執行warble -T,會多出war:aot 
    4.  
    5. 如果你不是Rails2.3.2的話還需要修改C:/jruby-1.5.1/lib/ruby/gems/1.8/gems/warbler-1.1.0/lib/warbler/task.rb檔案
    6.  
    7. 執行 > jruby -S warble war:aot
    8. 生成war包。並且裡面只有class
    9. 唐力群修改過的包提供了2.2.2/2.3.2兩個版本的dependencies.rb的修改。如果不是這兩個版本的rails,則需要自行修改dependencies.rb. 參考如下
    10.  

 

相關文章