Vert.x の使い方 - Windows 環境でソースからビルドする方法

Vert.x を Windows 上でソースビルドして実行環境を構築する手順をご紹介します。
ちなみに、わざわざソースからビルドしなくても https://github.com/purplefox/vert.x/downloads からパッケージ(例 vert.x-1.0.final.tar.gz)をダウンロードして解凍すれば簡単に使えます。

Vert.x は Node.js ライクな JVM 用のフレームワークで、JavaScriptRuby・Groovy・Java でアプリケーションを作成することができます。(Scala 無いのが残念)

Node.js + CoffeeScript もなかなか良いのですが、プログラム言語的に物足りなく感じており、他の言語で同様の事をしたいと思っていたので (関数言語に近い方が効果的な気がしています) 、個人的に Vert.x は注目しています。


サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20120513/

インストール手順(ソースからのビルド)

まずは、github からソースを取得します。

 git clone git://github.com/purplefox/vert.x.git

次に、build.xml ファイルを編集して Windows 上でビルドできるようにします。
5/13 時点の build.xml は Windows 上でのビルドを考慮していないようですので、以下のような編集が必要でした。

  • yardoc の実行を止める(dist の depends から yardoc を外す)
  • cp コマンドの実行を変更

yardoc(Ruby 用の API ドキュメント生成)に関しては、ネイティブコードを伴ったモジュールの gem install が必要となり面倒そうだったので今回は実行しない事にしました。

build.xml の編集例
・・・
<!--
  <target name="dist" depends="groovydoc,javadoc,yardoc,jar-core,jar-platform,jar-test-framework,compile-java-mods">
-->
  <target name="dist" depends="groovydoc,javadoc,jar-core,jar-platform,jar-test-framework,compile-java-mods">
    <mkdir dir="${dist-build}"/>
    ・・・
<!--
    <exec executable="cp">
      <arg value="src/scripts/vertx"/>
      <arg value="${dist-build}/bin/vertx"/>
    </exec>
    <exec executable="cp">
      <arg value="src/scripts/vertx.bat"/>
      <arg value="${dist-build}/bin/vertx.bat"/>
    </exec>
-->
    <!-- Windows 上で実行するだけなら vertx.bat があればよいので vertx は別にコピーしなくてもよい -->
    <copy file="src/scripts/vertx" todir="${dist-build}/bin" />
    <copy file="src/scripts/vertx.bat" todir="${dist-build}/bin" />
    ・・・

build.xml の編集が済めば、Apache Ant を使ってビルドします。

ビルド
 ant dist

ビルドが成功すると target/vert.x-1.0.final.tar.gz が作成されますので*1、適当なディレクトリに解凍して環境変数 VERTX_HOME にそのパスを設定しておきます。

VERTX_HOME 環境変数の設定例
set VERTX_HOME=C:\vert.x-1.0.final
set PATH=%VERTX_HOME%\bin;%PATH%

動作確認

それでは、単純な HTTP サーバーのサンプルアプリケーションを Groovy で記述して実行してみます。

8080 ポートで hello を返すだけの HTTP サーバーは以下のようになります。

sample_server.groovy
vertx.createHttpServer().requestHandler {req ->
    req.response.end "hello"

}.listen 8080

vertx コマンドに run <スクリプト名> *2 を与えてアプリケーションを実行します。

実行
 vertx run sample_server.groovy

Web ブラウザで http://localhost:8080/ にアクセスすると hello が表示され、動作確認できると思います。

*1:バージョン部分は異なる可能性あり

*2:Java の場合は run