今天把jruby项目打包成war,总结了点经验:
1.如果可以用gem别用 plugin,用plugin容易导致兼容性问题导致打包失败,下面的转帖就是gem和plugin的区别
2.warble complied war可以直接将打包的rb生成class,从而使程序有更好的加密
As a newbie to Rails, "Gem" and "Plugin" terminology was slightly confusing to me. Specifically I saw the terms being used interchangeably sometimes. This TOTD highlights the difference between Ruby Gem and Rails Plugin.
Ruby Gem and Plugin are both packaging systems - the main difference is the scope in which they are effective. The common differences are highlighted in the table below.
Topic | Ruby Gem | Rails Plugin |
Definition | A Gem is a packaged Ruby application using the packaging system defined by RubyGems. | A Rails plugin is a packaged Ruby application that extends the core Rails framework. |
Example | Has a name (e.g. rake) and a version (e.g. 0.4.16). Rails is also installed as a Gem. | Has a name (e.g. Goldspike) and a version (e.g. 1.1.1). |
Scope | Installed in the Ruby or JRuby installation and is available to all applications run using that interpreter. | Installed in a specific Rails app only. |
Packaging System | Rails gem is installed in jruby-1.0//lib//ruby//gems//1.8//gems//rails-1.2.3 as:
The | Goldspike plugin is installed in vendor//plugins//rails-integration directory of the application as:
The |
Management | Gems are managed on your computer using the gem command. You can install, remove and query gem packages using the gem command. | Plugins can be installed using after creating a Rails application and then invoking the command
|
Load Path | gem command adds the lib directory of your gem to the load path of Ruby. | Rails adds the lib directory of plugin in your application's load path. |
Specific Features |
| |
Publish Format | A Gem may be published as Plugin, for example ActiveRecord-JDBC. | A Plugin cannot be published as Gem. |
Here are some useful entries (with numerous pointers on screencasts, blogs, tips & extensive feature sets) to get you started with JRuby:
Are there any other main differences that I missed ?
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: totd rubyonrails rubygem railsplugin netbeans glassfish