干净的 sbt 项目中的 Scala Play 框架依赖项

Posted

技术标签:

【中文标题】干净的 sbt 项目中的 Scala Play 框架依赖项【英文标题】:Scala Play framework dependency in clean sbt project 【发布时间】:2015-01-19 09:26:56 【问题描述】:

我想为我的游戏项目创建一个“utils”依赖项,但我似乎找不到在不创建游戏项目的情况下导入游戏框架本身的方法。是否有我可以放入我的 sbt 构建文件的 maven/ivy 依赖项?

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

【问题讨论】:

playframework.com/documentation/2.2.x/Build 我不确定你是否需要这个,但看看这个 @DoomProg 这并不是我真正想要的。我正在寻找依赖项,所以我可以在一个干净的 sbt 项目中导入 play.api._ 等,而不是让它成为一个 play 项目。 所以这行不通? libraryDependencies ++= Seq("com.typesafe.play" %% "play" % "2.2.2") @Wiz 你能举个例子说明你正在尝试做什么(例如你想使用的一些 api)吗? @Salem 我基本上想将自定义操作包装器抽象为依赖项。所以我需要导入play.api.mvc._ 【参考方案1】:

您应该能够将 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

【讨论】:

完美。非常感谢!

以上是关于干净的 sbt 项目中的 Scala Play 框架依赖项的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 sbt/scala/play 多模块项目,该项目将与 Intellij scala 插件一起正常工作

如何将 Play 2.2 Scala 应用程序创建为 SBT 子项目

Play 2.0 / SBT:从 Build.scala 中的某些/所有模块中排除某些传递依赖项

升级 Play/Scala/SBT/jOOQ/HSQLDB 应用程序时出错

如何使用 SBT 原生打包器部署 Scala Play 框架 API

scala play sbt 配置简单教程