JRubyスクリプトを実行可能な形にして配布したい場合には、Rawrを使用する。RawrはJRuby用のパッケージングのツールで、Rawrを使うことでWindowsやMac用の実行ファイルを簡単に作成することができる。
Rawrのインストール
Rawrは以下のようにしてインストールできる。
% gem install rawr --source http://gems.neurogami.com
プロジェクトのセットアップ
Rawrによるパッケージングを可能にするには、パッケージングを行いたいプロジェクトで以下のコマンドを実行する。
% rawr install
このコマンドを実行することで、必要なファイルのダウンロードやディレクトリレイアウトの作成などが行われる。内容は以下のような感じ:
% tree
.
├── Rakefile
├── build_configuration.rb
├── lib
│ └── java
│ └── jruby-complete.jar
└── src
└── org
└── monkeybars
└── rawr
├── Main.java
└── Path.java
プロジェクトのパッケージング
上記で生成されたRakefile
にてパッケージング用のタスクが定義されるので、それらのrakeタスクを使ってプロジェクトのパッケージングを行う。
% rake -T
rake rawr:base_jar
rake rawr:build_extra_jars
rake rawr:bundle:app
rake rawr:bundle:exe
rake rawr:clean
rake rawr:compile
rake rawr:compile_duby_classes
rake rawr:compile_java_classes
rake rawr:compile_mirah_classes
rake rawr:compile_ruby_classes
rake rawr:get:current-jruby
rake rawr:get:current-stable-jruby
rake rawr:jar
exe形式にパッケージングしたい場合は、上記のrakeタスクのうちrawr:bundle:exe
を実行することで./package/windows
配下にパッケージされたアプリケーション一式が出力される。
% rake rawr:bundle:exe
パッケージング時の振る舞いについてはbuild_configuration.rb
で設定できる。例えば以下のような感じ:
-
executable_type
: アプリケーションがCUIかGUIか -
source_dirs
: ソースディレクトリ -
files_to_copy
: パッケージに含めたいファイルの指定 -
jvm_arguments
: JVMに渡すオプション
Rubyスクリプトのパッケージングの選択肢としても
JRubyではなく、Rubyで書いていたものをパッケージして社内に配布したいというケースの選択肢としても活用可能(実際にそのケースで採用したのであった)。
参考
- プロジェクト: http://rawr.rubyforge.org/
- GitHub: https://github.com/rawr/rawr