如何在Scala REPL中导入Play框架?

13

我该如何在Scala repl中导入play框架?

scala> import play.api.libs.json._
<console>:11: error: not found: value play
       import play.api.libs.json._
3个回答

16

1) 安装简单构建工具sbt {它很容易 - 从这里下载 - http://www.scala-sbt.org/download.html,并按照这里的说明进行操作 - http://www.scala-sbt.org/0.13/docs/Installing-sbt-on-Windows.html}

2) 创建一个带有以下内容的空文件夹build.sbt

//your-test-project/build.sbt

scalaVersion := "2.11.8"                                                                               

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

libraryDependencies += "com.typesafe.play" %% "play" % "2.5.12"

3)然后在根目录下运行sbt console,这将下载Play并使其可在控制台中使用。

$ ls -l ~/.ivy2/cache/com.typesafe.play/play_2.11/jars/
total 15392
-rw-r--r--  1 as18  185223974  4107407 Jan 22 15:59 play_2.11-2.5.12.jar

那么你就可以开始了。

scala> import play.api.libs.json._
import play.api.libs.json._

scala> val json: JsValue = Json.parse("""{ "compiler" : "scala", "ratings" : 5 }""")
json: play.api.libs.json.JsValue = {"compiler":"scala","ratings":5}

scala> val compiler = ( json \ "compiler" )
compiler: play.api.libs.json.JsLookupResult = JsDefined("scala")

如果您已经拥有相应的jar文件,也可以直接提供它,方法如下:

scala -cp ~/.ivy2/cache/com.typesafe.play/play_2.11/jars/play_2.11-2.5.12.jar

scala> import play.api.libs._
import play.api.libs._

4

有了 Ammonite REPL,事情变得更简单了:

load.ivy("com.typesafe.play" %% "play" % "2.5.12")
import whatever.you.need

它在Windows 10上可用吗?找不到它的下载页面。 - Manu Chadha
@ManuChadha,你在2017年使用Windows的问题 :) 你可能需要为Windows安装Bash,这样你就可以执行脚本了 - sudo curl -L -o /usr/local/bin/amm https://git.io/vMF2M && sudo chmod +x /usr/local/bin/amm && amm - prayagupa
如果有选项的话,我会给你的评论点赞的 :) - Manu Chadha
很高兴我找到了你的答案。 - Daniel

3

包未找到,是因为它不在REPL的类路径中。 如果您知道Play Framework JAR在计算机上的位置,则可以在启动REPL时将其添加到类路径中:

> scala -cp path/to/play.jar

您也可以直接从REPL会话中添加:

:require play.jar

请注意,您仍然需要像以前一样导入您的类。

我下载了play-2.2.6.zip。使用c:\..\play-2.2.6.zip启动了REPL。然后使用:require play-2.2.6.zip.获得了成功消息Added 'C:\Users\Manu\Documents\manu\play-2.2.6.zip' to classpath.但是当使用import play.api.libs.json._时仍然出现错误:未找到值play。 - Manu Chadha
你是说你添加了play-2.2.6.zip还是play.2.2.6.jar?你应该导入*.jar而不是.zip - prayagupa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接