如何创建在运行sbt命令后可以运行的新命令Scala

时间:2018-06-07 21:22:50

标签: scala

我正在尝试在运行sbt后运行某些任务和启动服务器。我希望能够在终端中运行命令来执行此操作。我该如何定义它们?插件是正确的方法:

我看到一些像这样的代码:

object DoThing extends AutoPlugin {
  object autoImport {
    val vpnCheck = taskKey[Boolean]("Check for a VPN connection.")
  }
  import autoImport._

  override lazy val projectSettings = Seq(
    vpnCheck := {
      doVpnCheck()
    }
  )

projectSettings方法做什么?是插件的方式吗?

从插件页面:

  

插件是一种在构建定义中使用外部代码的方法。插件可以是用于实现任务的库(您可以使用Knockoff编写降价处理任务)。插件可以定义一系列sbt设置,这些设置会自动添加到所有项目或为所选项目显式声明。例如,插件可能会添加proguard任务和关联(可覆盖)设置。最后,插件可以定义新命令(通过命令设置)。

但我似乎无法弄清楚这一点。

1 个答案:

答案 0 :(得分:0)

对于您的方案,也许您可​​以在 sbt 文件中创建任务来执行此操作,例如:

val hello = taskKey[Unit]("hello world")

hello := {
  println("hello")
}

如果您在启动时间中自动运行它,您可以在项目目录中创建.sbtrc文件,它就像:

alias boot = ;reload ;hello ;iflast shell