Scala 如何在控制台中与我的play应用程序交互?

Scala 如何在控制台中与我的play应用程序交互?,scala,playframework,sbt,ammonite,Scala,Playframework,Sbt,Ammonite,我有一个使用scala的Play2.8.x应用程序 sbt项目有一个PlayWeb项目和另一个库模块 是否可以与REPL中的其他模块交互? 我的系统上也安装了ammonite,但不确定如何加载我的模块。我是否只需要生成并引用/target build文件夹中的库?还是有更好的办法 我可以在sbt中单独执行此操作吗,或者ammonite是唯一的方法?每个sbt项目都有一个REPL,您只需运行: sbt> console 对于根项目或名称项目 但这是正常的Scala REPL,如果您想要菊石

我有一个使用scala的Play2.8.x应用程序

sbt项目有一个PlayWeb项目和另一个库模块

是否可以与REPL中的其他模块交互? 我的系统上也安装了ammonite,但不确定如何加载我的模块。我是否只需要生成并引用/target build文件夹中的库?还是有更好的办法


我可以在sbt中单独执行此操作吗,或者ammonite是唯一的方法?

每个sbt项目都有一个REPL,您只需运行:

sbt> console
对于根项目或名称项目

但这是正常的Scala REPL,如果您想要菊石,那么:

您还可以在现有SBT项目中试用Ammonite 2.1.4。为此,请将以下内容添加到build.sbt

在那之后,只需点击

或者测试范围内是否有其他主要方法

sbt> name/console
libraryDependencies += {
  val version = scalaBinaryVersion.value match {
    case "2.10" => "1.0.3"
    case _ ⇒ "2.1.4"
  }
  "com.lihaoyi" % "ammonite" % version % "test" cross CrossVersion.full
}

sourceGenerators in Test += Def.task {
  val file = (sourceManaged in Test).value / "amm.scala"
  IO.write(file, """object amm extends App { ammonite.Main.main(args) }""")
  Seq(file)
}.taskValue

// Optional, required for the `source` command to work
(fullClasspath in Test) ++= {
  (updateClassifiers in Test).value
    .configurations
    .find(_.configuration.name == Test.name)
    .get
    .modules
    .flatMap(_.artifacts)
    .collect{case (a, f) if a.classifier == Some("sources") => f}
}
sbt projectName/test:run
sbt projectName/test:run-main amm