プログラミング言語とXPath(7) Scales XMLをビルドしてみる

前回Scalaの標準の実装ではXMLの処理が不便であるということを書きました.ScalaにはXMLの処理を意図した別の実装が存在します.その一つがScales XMLです.

Scales Xml is an alternative library for XML usage in Scala

今回このScales XMLをビルドしてなんとか使えるようになりましたので、ことの顛末を書いてみます.

ともかくGitHubもsbt(simple build tool)はほとんど何も知らない、そしてScalaは超初心者で、Javaも実は最近は忘れてしまったという私がやってみたので、スゴク時間がかかりました.そこらじゅうのWEBサイトに質問して回答をいただきお世話になりました.もし他に挑戦してみる方が参考にしていただければ幸いです.⇒初心者なのでたぶん相当マチガイもあります.ご了解ください.

[1]Scales XMLGitHubにあります.

Scales XMLのプロジェクトは今流行のGitHubにあります.

Alternate Scala XML library

イメージ 8

まずはGitHubからリポジトリをクローンします.もちろんGitHubからZIPアーカイーブを落とすこともできるのですが、ちょうど会社でもGitHubを使う機会があったので、一番素人でもなんとかなりそうなGitHub for Windowsをインストールしました.


ほぼメールアドレスとパスワードを入れるだけでGitHub for Windowsが立ち上がってくれます.

イメージ 1


でもScales XMLは自分がcontributeしているリポジトリではないので、リポジトリをクローンするには、同時にインストールされるGit Shellを使いました.git clone https://github.com/chris-twiner/scalesXml.git でOKです.

イメージ 2

でも今見ると、GitHubリポジトリには「Clone in Desktop」というボタンがあるのでそちらのほうがたぶんもっと簡単でしょう.

[2]Scales XMLはsbtでビルドします.

sbtは"simple build tool"の略です.Scalaのビルドツールです.次からWindowsインストーラー(.msi)を落とせます.

Installing sbt¶

私の場合インストールしてから環境変数JAVA_HOMEの設定だけ変えました.

C:\Program Files (x86)\sbt\bin\sbt.bat

SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_37

これでコマンドラインからsbtを起動できるようになります.

sbtでプロジェクトをビルドし、パッケージを作ります.

(1)最初にリポジトリのフォルダをカレントにしてsbtを起動します.必要な.jarをセットアップするので少し時間がかかります.

イメージ 3

(2)compileとたたいてビルドします.

イメージ 4

イメージ 5

(3)あとはpackageとたたいて.jarを作ります.これでScales XMLのライブラリはビルドできました.

イメージ 6

[3]必要なライブラリを落としました.

[2]まででScales XMLのライブラリはビルドできているのですが、これだけでEclipseでScales XMLを使うScalaのプロジェクトを作ってもうまくいきません.Scales XMLから参照しているライブラリのScalazとJaxenがないとダメです.

実はここでイヤと言うほど手間取りました.ScalazとJaxenを落としてビルドしてみたのですがどうもうまくいってくれないのです.理由は簡単で、Scales XMLをビルドするときに使用したバージョンのライブラリでないとうまく行かないのです.Scales XMLのこの時点のバージョンは0.4.4とのことですけれど、このビルドに使った対応するライブラリは次のとおりになります.

Scalaz
scalaz-core_2.10-6.0.4.jar

Jaxen
jaxen-1.1.4.jar

実はここでちょっと出戻りがあります.Scales XMLのこのバージョンでは、Jaxen-1.1.3を使ってビルドしているようなのです.これだとXPathがうまくいきそうにないので、jaxen/build.sbtを変えてScales XMLを再ビルドしてあります.

以下の自己RESを参照:

最終的にプロジェクトの参照ライブラリをEclipseで以下のようにしてビルドエラーは消えてくれました.

イメージ 7

この次はScales XMLをほんのちょっと試してみた結果を報告します.