Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sbt任务使用项目启动Scala REPL';在类路径上创建类和一些初始命令_Scala_Sbt_Scala Repl - Fatal编程技术网

sbt任务使用项目启动Scala REPL';在类路径上创建类和一些初始命令

sbt任务使用项目启动Scala REPL';在类路径上创建类和一些初始命令,scala,sbt,scala-repl,Scala,Sbt,Scala Repl,我想定义一个sbt任务,该任务将启动scala控制台,在类路径上使用项目编译的类,并执行一些初始命令 我想像这样开始REPL会话 sbt session 下面是我基于其他答案所做的抱歉尝试,但它既不将项目的类放在类路径上,也不执行初始命令: // extend Test in hope to include compiled sources on the classpath. val ReplSession = config("repl-session") extend(Test) val

我想定义一个sbt任务,该任务将启动scala控制台,在类路径上使用项目编译的类,并执行一些初始命令

我想像这样开始REPL会话

sbt session
下面是我基于其他答案所做的抱歉尝试,但它既不将项目的类放在类路径上,也不执行初始命令:

// extend Test in hope to include compiled sources on the classpath.
val ReplSession = config("repl-session") extend(Test)

val root = project.in(file("."))
  .configs(ReplSession)
  .settings(inConfig(ReplSession)(initialCommands := """
    | import foo._
    | """.stripMargin))

// define task that starts the REPL session
lazy val session = TaskKey[Unit]("session")
session <<= Seq(
  console in (root, ReplSession)
).dependOn
//扩展测试,希望在类路径中包含编译过的源代码。
val ReplSession=config(“repl会话”)扩展(测试)
val root=project.in(文件(“.”)
.configs(复制会话)
.settings(inConfig(ReplSession)(initialCommands:=“”)
|输入foo_
|“.stripMargin”)
//定义启动REPL会话的任务
延迟val会话=任务键[单元](“会话”)

会话注意:如果有人有更好的解决方案,我会将其标记为正确答案

对我起作用的东西正在改变

inConfig(ReplSession)(initialCommands := ...)
在我的原始代码片段中

inConfig(Test)(initialCommands := ...)
或者,或者

initialCommands in (Test, console) := ...
为了完整起见,我现在使用以下内容:

val ReplSession = config("repl-session") extend(Test)

val root = project.in(file("."))
  .configs(ReplSession)

lazy val session = TaskKey[Unit]("session")
session <<= Seq(
  console in (root, ReplSession)
).dependOn

initialCommands in (Test, console) := """
  | import foo._
  | """.stripMargin
val ReplSession=config(“repl会话”)扩展(测试)
val root=project.in(文件(“.”)
.configs(复制会话)
延迟val会话=任务键[单元](“会话”)

会话控制台操作是否已经执行了您想要的操作?与控制台中的
初始命令一起
?但是你似乎已经在使用它了,但是试图做一些额外的事情,所以我觉得你的问题还有很多我不明白的地方。(此处有更多详细信息:)@ImranRashid
sbt console
启动控制台,但类路径上没有项目类,因此执行
initialCommands
失败。有效的是
sbt测试:控制台
和控制台中的
initialCommands
,但仍然为
编译
配置设置
initialCommands
,它们仍然失败。另外,我需要一个单词的命令,而不是
test:console
。因此,您不能在
initialCommands
中引用项目中的类。但是,它似乎在spark构建中起作用。。。我不知道这是怎么回事。