Scala在干净的sbt项目中播放框架依赖

时间:2014-11-21 09:19:53

标签: scala playframework sbt

我想为我的游戏项目创建一个“utils”依赖项,但我似乎找不到一种方法来导入play框架本身而不创建一个play项目。我可以在我的sbt构建文件中添加maven / ivy依赖游戏吗?

基本上我需要能够import play.api.mvc._在一个独立的sbt项目上。

1 个答案:

答案 0 :(得分:6)

您应该可以将Play用作任何其他jar依赖项。使用Play的某些部分的示例项目(您应该更改Play和Scala版本以满足您的需求):

$ tree .
├── build.sbt
└── hello.scala

build.sbt文件:

name := "hello"

version := "1.0"

scalaVersion := "2.10.4"

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

libraryDependencies ++= Seq(
    "com.typesafe.play" %% "play" % "2.3.4",
    "com.typesafe.play" %% "play-test" % "2.3.4"
)

hello.scala

import play.api._
import play.api.mvc._
import play.api.test._
import play.api.test.Helpers._

class TestController extends Controller {
    def index = TODO
}

object Hello {
    def main(args: Array[String]) = {
        Logger.error("Using Play logger")
        val fr: FakeRequest[String] = new FakeRequest(
            "GET", "/",
            FakeHeaders(Seq.empty), ""
        )
        val ctrl = new TestController
        // Prints the response body
        println(contentAsString(call(ctrl.index, fr)))
        println("Done")
    }
}

这应该给你这样的东西:

$ sbt run
(...)
14:00:12.335 [run-main-0] ERROR application - Using Play logger
<!DOCTYPE html>
<html>
    (...)
    <body>
        <h1>TODO</h1>

        <p id="detail">
            Action not implemented yet.
        </p>

    </body>
</html>
Done