playで使うsbtについて。playで外部jarを追加する場合、eclipseなどでビルドパスを通してもいいんだけど、sbtというものがあるので使ってみる。内部はmavenらしい。
例として、mysqlとopencsvを追加。hogeProject/project/Build.scalaファイルを下のように修正。
・修正前
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean
)
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean,
"net.sf.opencsv" % "opencsv" % "2.3",
"mysql" % "mysql-connector-java" % "5.1.20"
)
キーワード「net.sf.opencsv」とか何を入力していいか解らない場合、MavenRepositoryの検索でopencsvと入力し、opencsvページのSBTタブを見ればわかる。「libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"」。これを見たら、maven,sbtの他にもIvy,Grapeとかいろいろあるもんだ。
ref:sbt公式
これで問題なく外部jarが使えるようになるんだけど、eclipseで開発している場合は「play eclipse」を一度実行してあげないとコンパイルエラーがでる。
refs
・play依存性の解決
・ライブラリ依存性の管理(公式)
■バージョンアップ
2.1.1から2.1.5へ。まず2.1.5を落として解凍して2.1.5のplayの実行ファイルにクラスパスを通す。2.1.1で作ったプロジェクトのhogePrj/project/plugins.sbtを下のように編集する。
// 変更前
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.1")
// 変更後
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.5")
あとは、play clean、play compile、play runすればおっけ。マイナーバージョンをアップした時はhogePrj/project/build.propertiesのsbt.versionもバージョンアップしなければいけないみたいだけど、今回はマイナーバージョンは同じ2.1だから必要なし。
refs
・play 2.1 migration guide(公式)
・[Play!Framework] アップデートしてみました。2.1.1 -> 2.1.5
■2.1.1から2.2.0へ
この勢いで2.2へバージョンアップにトライ。plugins.sbtは「addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.0")」、build.propertiesは「sbt.version=0.13.0」へ変更。これでplay clean,play compileしたらコンパイルエラーでまくり。playの公式の2.2migration guideでcache moduleの依存性に書いてあったから試してみたけど、他にもコンパイルエラーがでる。
refs
・play 2.2 migration guid (公式)
・Play 2.2.0 is released! (mars hut)
akkaとかF.promiss?とかもある、他にもある、こりゃだめだ・・・
ref
・OUR MIGRATION TO SBT 0.13.0 FOR PLAY AND AKKA
As Play 2.2 was released this week, we started our migration. At the same point we moved our sbt to 0.13.
例として、mysqlとopencsvを追加。hogeProject/project/Build.scalaファイルを下のように修正。
・修正前
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean
)
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
javaEbean,
"net.sf.opencsv" % "opencsv" % "2.3",
"mysql" % "mysql-connector-java" % "5.1.20"
)
キーワード「net.sf.opencsv」とか何を入力していいか解らない場合、MavenRepositoryの検索でopencsvと入力し、opencsvページのSBTタブを見ればわかる。「libraryDependencies += "net.sf.opencsv" % "opencsv" % "2.3"」。これを見たら、maven,sbtの他にもIvy,Grapeとかいろいろあるもんだ。
ref:sbt公式
これで問題なく外部jarが使えるようになるんだけど、eclipseで開発している場合は「play eclipse」を一度実行してあげないとコンパイルエラーがでる。
refs
・play依存性の解決
・ライブラリ依存性の管理(公式)
■バージョンアップ
2.1.1から2.1.5へ。まず2.1.5を落として解凍して2.1.5のplayの実行ファイルにクラスパスを通す。2.1.1で作ったプロジェクトのhogePrj/project/plugins.sbtを下のように編集する。
// 変更前
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.1")
// 変更後
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.5")
あとは、play clean、play compile、play runすればおっけ。マイナーバージョンをアップした時はhogePrj/project/build.propertiesのsbt.versionもバージョンアップしなければいけないみたいだけど、今回はマイナーバージョンは同じ2.1だから必要なし。
refs
・play 2.1 migration guide(公式)
・[Play!Framework] アップデートしてみました。2.1.1 -> 2.1.5
■2.1.1から2.2.0へ
この勢いで2.2へバージョンアップにトライ。plugins.sbtは「addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.0")」、build.propertiesは「sbt.version=0.13.0」へ変更。これでplay clean,play compileしたらコンパイルエラーでまくり。playの公式の2.2migration guideでcache moduleの依存性に書いてあったから試してみたけど、他にもコンパイルエラーがでる。
refs
・play 2.2 migration guid (公式)
・Play 2.2.0 is released! (mars hut)
akkaとかF.promiss?とかもある、他にもある、こりゃだめだ・・・
ref
・OUR MIGRATION TO SBT 0.13.0 FOR PLAY AND AKKA
As Play 2.2 was released this week, we started our migration. At the same point we moved our sbt to 0.13.