【问题标题】:How can I have some code loaded in sbt console?如何在 sbt 控制台中加载一些代码?
【发布时间】:2015-12-28 12:52:05
【问题描述】:
我想在运行sbt console 时加载/解释一些代码。相同的代码将在项目之间共享。
将其视为仅在交互式会话中有意义的东西(例如计时功能) - 例如 .irbrc 用于 Ruby,PYTHONSTARTUP 脚本用于 Python ..等。
【问题讨论】:
标签:
scala
sbt
interactive
read-eval-print-loop
【解决方案1】:
好吧,根据 Sacha Kolberg 评论的回答,我改编了这样的内容:
https://github.com/herenowcoder/rcfiles/blob/8965c73/build.sbt
不过,它需要将代码块复制到每个 SBT 项目。
任何人都有为所有项目(每个 Unix 用户)设置此设置的优雅解决方案..?
我也玩过.sbtrc,但运气不好。
[编辑]
顺便说一句,以这种方式加载命令最酷的地方在于,控制台会打印经过评估的内容的类型签名:
[info] Starting scala interpreter...
[info]
time: [R](block: => R)R
Welcome to Scala version 2.11.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60).
不过,我仍在寻找一种方法来为每个项目包含此类代码。
类似于 Elixir 的 .iex.exs 机械风格。
[编辑]
找到了!
与其将initialCommands in console := "..." 部分添加到所涉及的每个项目中,不如将其放入~/.sbt/0.13/build.sbt,或者-可能更正确-~/.sbt/0.13/global.sbt(两者都有效)就足够了。
感谢 Sascha Kolberg 让我走上正轨!