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