首页 > 解决方案 > 如何在 sbt shell 会话开始时显示项目特定的消息?

问题描述

我想在sbt(不是 Scala)会话开始时显示特定于项目的消息,类似于启动 Scala REPL 时显示的消息。这将是某种帮助消息,但针对特定于该项目的命令或流程。

$ scala
Welcome to Scala 2.12.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_181).
Type in expressions for evaluation. Or try :help.

scala> 

是否有内置的方法来执行此操作或 sbt 插件?如果没有,我还能如何实现这一目标?

标签: scalasbt

解决方案


您可以定义一个虚拟设置值作为访问 SBT 记录器的一种方式。

val welcomeMessage = settingKey[Unit]("Welcome message")

welcomeMessage := {
  sLog.value.info("<some message here>")
}

笔记:

  • 每当运行 SBT 时都会显示此消息,而不仅仅是在调用它以进入 SBT 提示符时。
  • 这可能不是要显示的最后一条消息

如果希望在访问 Scala 控制台而不是 SBT 提示符时显示消息,那么有更直接的支持。该initialCommands设置允许您设置在首次进入 Scala 控制台时运行的代码片段,其中可能包括打印一些消息。

SBT 文档


推荐阅读