読者です 読者をやめる 読者になる 読者になる

冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

ScalaFXのgiter8テンプレートを作った

目的

Scala発火村 in 天領倉敷 - 天領倉敷Scala | Doorkeeper に向けて、何か新しい物を作ってみたいので、そのためのgiter8テンプレートを作っておこうと思いました。
作ろうと思っているアプリは以下です。

  • デスクトップアプリ
  • 写真とイメージをタグ付け
  • どのスライドに使った写真家をひも付け

という訳で、以下のライブラリを含んでいるプロジェクトテンプレートを作成しました。

  • ScalaFX
  • Specs2

やったこと

元々ScalaFXのためのgiter8プロジェクトは存在していますが、テスティングフレームワークがScalaTestになっています。
また、Scalaのバージョンが2.9系だったこともあり*1、以下のリポジトリをフォークして以下の作業しています。

https://github.com/jugchennai/scalafx.g8

  • Scalaのバージョンをあげる(2.9系から2.10.2へ)
  • 以下のプラグインのバージョンを最新版へ
    • sbt-idea
    • sbt-eclipse
    • sbt-assembly
  • テストライブラリをSpecs2に変更
  • .gitignore追加

途中sbtのバージョンを勘違いしていて、sbt-ideaのバージョン指定に間違いに気づかないところもあったりしましたが、大きくはまることもありませんでした。

リポジトリ

https://github.com/Shinsuke-Abe/scalafx.g8

当然giter8からプロジェクトテンプレートを取り込めます。

課題

環境変数JAVA_HOMEに依存しているところをなんとかしたいです。
あまりJAVA_HOMEは設定したくないので、パラメータ渡しに変更しようかと思っています。
今は、JAVA_HOMEを指定するか、指定しない場合はProject StructuredのLibrary Pathを直接変更する、ということにしています。

それと、sbtでビルドに使っているバージョンと、プロジェクトに指定しているバージョンが違う場合、sbt-ideaは両方のバージョンのScalaコンパイラにパスを通して、ビルドで使っている方を優先するっぽいです。
とりあえず、Project Structuredで2.9.2(sbtで使っているバージョン)を削除して、2.10.2を指定し直せば良いのですが、sbt-ideaでプロジェクトを取り込むたびにこれをするのもなあ、と思っているところです。

*1:この記事をポストした3日前にScalaのバージョンアップがされてますね