akairosame’s blog

備忘録やメモ

sbtからPlay Frameworkをインストールしようとして失敗した

とりあえずPlayが入ればいいやと次のようにしたんですが、依存性の解決に失敗しました。

/* project/plugins.sbt */
resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/maven-releases/"

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10")

/* project/build.properties */
sbt.version = 0.13.12

/* build.sbt */
scalaVersion := "2.11.8"

lazy val main = (project in file("main")).enablePlugins(PlayScala)
[error] (main/*:update) sbt.ResolveException: unresolved dependency: com.typesafe.play#play-server_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-netty-server_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-logback_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-test_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-omnidoc_2.10;2.5.10: not found
[error] (main/*:ssExtractDependencies) sbt.ResolveException: unresolved dependency: com.typesafe.play#play-server_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-netty-server_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-logback_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-test_2.10;2.5.10: not found
[error] unresolved dependency: com.typesafe.play#play-omnidoc_2.10;2.5.10: not found

えぇ…、Scalaのバージョン2.10のライブラリ取ってこようとしてますね…。Scalaのバージョンは2.11指定してるのにーと思ったのですが、中でバージョン何見てるんだとsbt scalaVersionしてみると、

> sbt scalaVersion
[info] main/*:scalaVersion
[info]  2.10.6
[info] playroute25/*:scalaVersion // <- sbtプロジェクトのフォルダ名
[info]  2.11.8

ああそういう…。sbtの中でルートディレクトリのプロジェクトって絶対作られるんですね…。プロジェクト名ってフォルダ名が付くのか…。sbtのドキュメント見返すとちゃんと書いてありました。sbt Reference Manual — マルチプロジェクト・ビルド

バージョンはsettingsに指定すれば良いということですね。

/* builds.sbt */
lazy val main = (project in file("main"))
  .enablePlugins(PlayScala)
  .settings(scalaVersion := "2.11.8")

これでOKでした。