JRuby1.5.1下运行Rails2.2.2应用
最近要把我的一个RoR项目卖给客户,为了进行产权保护,研究了一下JRuby的打包,记录如下
- 下载/安装JRuby
- JRuby 下载地址 http://jruby.org/download
- 下载Windows版本,然后安装到C盘下
- 安装的时候自动设置PATH,方便不少.
- 运行 jruby -v 验证安装成功
- 安装Rails 2.2.2
- jruby -S gem install rails -v 2.2.2
- 安装JDBC驱动
- JDBC
- jruby -S gem install activerecord-jdbc-adapter
- Sqlite3
- jruby -S gem install activerecord-jdbcsqlite3-adapter
- MySQL
- jruby -S gem install activerecord-jdbcmysql-adapter
- JDBC
- 安装Sqlite3数据库
- 下载Sqlit3
- 放置sqlite3.exe和sqlite3.dll到JRUBY/bin下
- 建立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
- 修改config
- myapp/config/database.yml
- 利用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模式重新打一次
- 利用warbler进行AOT模式打包
- 下载唐力群修改过得warbler包,地址为 http://github.com/crazycode/warbler
- 下载后解压缩,覆盖C:/jruby-1.5.1/lib/ruby/gems/1.8/gems/warbler-1.1.0下内容
- 执行warble -T,会多出war:aot
- 如果你不是Rails2.3.2的话还需要修改C:/jruby-1.5.1/lib/ruby/gems/1.8/gems/warbler-1.1.0/lib/warbler/task.rb文件
- 执行 > jruby -S warble war:aot
- 生成war包。并且里面只有class
- 唐力群修改过的包提供了2.2.2/2.3.2两个版本的dependencies.rb的修改。如果不是这两个版本的rails,则需要自行修改dependencies.rb. 参考如下