目次
1.環境
- Windows10 64bit
- Scala 2.11
- PlayFramework2.5.10
今回はPlayFramework2.5.10のバージョンをPlayFramework2.3.9に下げたかったのでやってみた。
2.バージョンダウン変更手順
まずは下記の3つのファイルを修正します。
2-1.build.sbt
name := """MyApp""" version := "1.0-SNAPSHOT" lazy val root = (project in file(".")).enablePlugins(PlayScala) scalaVersion := "2.11.7" libraryDependencies ++= Seq( //▽ コメントアウト // jdbc, // cache, // ws, // "org.scalatestplus.play" %% "scalatestplus-play" % "1.5.1" % Test //△ "com.typesafe.play" %% "play-slick" % "0.8.1" // <- slickライブラリを追加 )
2-2.project/plugins.sbt
// The Play plugin //▽ コメントアウト // addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.10") //△ //▽ 追加 addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9") //△ // web plugins addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0") addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.0") addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.4") addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.8") addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1") addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.1.0") addSbtPlugin("org.irundaia.sbt" % "sbt-sassify" % "1.4.6")
2-3.app/controllers/HomeController.scala
package controllers // import javax.inject._ <- 2.3.xではライブラリがないそうなので削除 import play.api._ import play.api.mvc._ /** * This controller creates an `Action` to handle HTTP requests to the * application's home page. */ // @Singleton <- javax.injectパッケージを削除したので削除 //class HomeController @Inject() extends Controller { object HomeController extends Controller { <- @Singletonが使用できないのでobjectにしてシングルトンとして定義 def index = Action { Ok(views.html.index("Your new application is ready.")) } }
2-4.起動の確認
プロジェクトルートで下記のコマンドをたたきます。
activator run
アプリケーションが起動したら下記のURLにアクセスします。
しかし、このままですと2.3.9にバージョンダウンして起動した際に他のファイルで2.3.xには無いライブラリが参照されているためエラーが発生してしまいます。
そのため、それらのファイルは削除しちゃいます。
まずはPlayFramework2.5.10でプロジェクト作成した際のプロジェクトフォルダ内の構成
(ある程度不要な不要なフォルダやファイルを端折ってます。)
.MyApp
│ build.sbt
│ LICENSE
│ README
│
├─app
│ │Filters.scala
│ │Module.scala
│ │
│ ├─assets
│ ├─controllers
│ │ HomeController.scala
│ │ CountController.scala
│ │ AsyncController.scala
│ │
│ ├─filters
│ │ ExampleFilter.scala
│ │
│ ├─services
│ │ ApplicationTimer.scala
│ │ Counter.scala
│ │
│ └─views
│ index.scala.html
│ main.scala.html
│
├─conf
│ application.conf
│ logback.xml
│ routes
│
├─logs
│ application.log
│
├─project
│ build.properties
│ plugins.sbt
│
├─public
│ ├─images
│ ├─javascripts
│ └─stylesheets
│
└─test
ApplicationSpec.scala
IntegrationSpec.scala
3.エラーの修正を行う
3-1.ファイルの削除
下記のファイルは削除します。
(サンプルコードのファイルのため不要です。)
app/Filters.scala app/Module.scala app/controllers/CountController.scala app/controllers/AsyncController.scala app/filters/ExampleFilter.scala app/services/ApplicationTimer.scala app/services/Counter.scala
3-2.conf/routesの修正
削除したファイルを参照している記述があるためその部分を削除します。
# Routes GET / controllers.HomeController.index //▽ 削除 # An example controller showing how to use dependency injection GET /count controllers.CountController.count # An example controller showing how to write asynchronous code GET /message controllers.AsyncController.message //△ GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
4.再度起動確認
再度、http://localhost:9000へアクセスしてみましょう。
成功すればPlayの画面が表示されるはずです。
画面に表示されているバージョンを確認して2.3.9になっていることを確認しましょう。
You’re using Play 2.3.9
以上