我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过InteractionService
输入并保留在内存中。)
虽然它可能过于偏执,但我会尽量小心使用私有信息的软件的攻击面最小化,并且在这些版本中不必要地运行服务器,即使在localhost或UNIX套接字上也感觉不好。
我已经在插件中设置了一个可以禁用服务器启动的设置,除非被构建覆盖。到目前为止还没有找到这样的东西。有这样的设置吗?
非常感谢!
更新:在Eugene Yokota的帮助下,截至sbt 1.1.1,现在有一个布尔autoStartServer
设置。构建和插件可以通过设置autoStartServer := false
来阻止服务器自动启动。 (如果愿意,用户仍然可以通过运行startServer
来手动启动服务器。)
答案 0 :(得分:3)
至少从sbt 1.1.0开始,除非你启动sbt shell,否则服务器将无法启动,这意味着如果你在CI环境中以批处理模式运行sbt(例如sbt test
),它没有服务器。
即使在shell中自动停止服务器,我也添加了一个JVM标志sbt.server.autostart
。所以运行sbt为sbt -Dsbt.server.autostart=false
就可以了。您可以通过将其放入SBT_OPTS
。
要手动选择加入服务器,您可以运行:
> startServer
更新:既然autoStartServer
是设置,您可以在~/.sbt/1.0/global.sbt
中写下以下内容:
// This is so it works on sbt 1.x prior to 1.1.1
SettingKey[Boolean]("autoStartServer", "") := false