JRuby1.5.1下运行Rails2.2.2应用

来源:互联网 发布:淘宝详情怎么做的 编辑:程序博客网 时间:2024/06/07 19:03

    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.  

 

原创粉丝点击