可以禁用sbt 1.x服务器吗?

时间:2018-02-02 21:35:03

标签: sbt sbt-plugin

我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过InteractionService输入并保留在内存中。)

虽然它可能过于偏执,但我会尽量小心使用私有信息的软件的攻击面最小化,并且在这些版本中不必要地运行服务器,即使在localhost或UNIX套接字上也感觉不好。

我已经在插件中设置了一个可以禁用服务器启动的设置,除非被构建覆盖。到目前为止还没有找到这样的东西。有这样的设置吗?

非常感谢!

更新:在Eugene Yokota的帮助下,截至sbt 1.1.1,现在有一个布尔autoStartServer设置。构建和插件可以通过设置autoStartServer := false来阻止服务器自动启动。 (如果愿意,用户仍然可以通过运行startServer来手动启动服务器。)

1 个答案:

答案 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