我正在尝试在运行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任务和关联(可覆盖)设置。最后,插件可以定义新命令(通过命令设置)。
但我似乎无法弄清楚这一点。
答案 0 :(得分:0)
对于您的方案,也许您可以在 sbt 文件中创建任务来执行此操作,例如:
val hello = taskKey[Unit]("hello world")
hello := {
println("hello")
}
如果您在启动时间中自动运行它,您可以在项目目录中创建.sbtrc文件,它就像:
alias boot = ;reload ;hello ;iflast shell