ここ最近 scalaxb を複数のコンフィギュレーションで使う sbt ビルドの設定の方法について何人かの方に聞かれたので、ちょっとみてみよう。
コードは以下から入手してほしい:
$ git clone -b multipleconfigs git://github.com/eed3si9n/scalaxb-sample.git
$ cd scalaxb-sample/multipleconfigs/
好きなエディタでディレクトリごと開く。src/
内には main/scala/main.scala
、main/xsd/ipo.xsd
、main/xsd/w.xsd
が入っている。
複数の config はいつ必要?
単一 config の場合は、全てのスキーマの型クラスのインスタンスが xmlprotocol.scala に含まれる。現行では、参照されているスキーマは一緒にコンパイルされないければいけないので、通常はこの方法を取ることになる。
それでは、いつ複数の config を使うべきだろうか? 複数のコンフィギュレーションを使うことで、スキーマを別々にコンパイルして xmlprotocol.scala を独立して生成することができる。分けることでコードのサイズを小さく抑えたり、別のパッケージ下に生成したい場合に有効だ。