セットアップ

色んな scalaxb

scalaxb は、xsd と wsdl から Scala ソースを生成する XML データバインディングツールだ。
現在四通りの方法で scalaxb を走らせることができる。

  1. コマンドラインアプリ scalaxb
  2. sbt プラグイン sbt-scalaxb
  3. maven プラグイン mvn-scalaxb
  4. heroku でホスティングされてる web API scalaxb-heroku

基本的にはスキーマファイルから Scala ソースを生成するという点においてどれも機能的には変わらない。
プロジェクトの開始当初はコマンドラインが中心だったので、そればっかり使ってたけど、最近は giter8 テンプレートで自動でセットアップした sbt プロジェクトから sbt-scalaxb を使うという方法に移行してる。試すだけなら、web API ならブラウザだけあれば ok。
sbt 慣れしてる人は sbt-scalaxb を使って、あとは色々試すのにコマンドラインの scalaxb も入れておくっていうのがお勧めかな。

sbt-scalaxb のインストール

とりあえず sbt さえ入ってれば、一応ビルド定義に数行書くだけで sbt-scalaxb は使えるようになる。mvn-scalaxb も同様。このまま sbt-scalaxb に進んでしまってもいいけど、このページの conscript の説明は読んでおくといいかも。

コマンドラインアプリのインストール

もし入ってない場合は Java 6 SE を入れる。で、次に、conscript (cs) をインストールする。

conscript って何?

sbt の依存性の管理をバックエンドに使ったコマンドラインアプリを書くことができるんだけど、それをセットアップする簡単なユーティリティが  conscript。とりあえず scalaxb もインストールしてみる:

$ cs eed3si9n/scalaxb

何が起こるかと言うと、まず ~/bin/scalaxb というスクリプトが作られて(Unix なら bash、Windows ならバッチファイル)、github から launchconfig を落としてきて ~/.conscript/eed3si9n/scalaxb/scalaxb/launchconfig に置かれる。それだけ。
残りのお仕事は sbt-launcher.jar と呼ばれる sbt のランチャーにやってもらう。launchconfig にバージョン番号と scalaxb でつかうメインのモジュールが書いてあって、インストール時に sbt のランチャーがそのモジュールと全ての依存ライブラリを自動的にダウンロードしてくる。

scalaxb がアップデートするたびに jar を落としてきて、スクリプトを書いてみたいなことをやるよりずっと便利だ。独立した環境で実行されるため、クラスパスが汚染される心配もいらない。バグの修正後によく スナップショットビルドを公開するけども、conscript を使えば以下のようにして試すことができる:

$ cs eed3si9n/scalaxb/0.6.6-SNAPSHOT

これは、sbt がライブラリのスナップショット jar を落としてくるのと同じ方法でスナップショットの jar を落としてきてる。理にかなっていると思う。

コマンドラインアプリを走らせる

Terminal アプリかコマンドプロンプトで、以下を実行:

$ scalaxb

もし動けば、続きはscalaxb の実行.

ソースからのビルド

INSTALL 参照。