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

Ste*_*man 7 sbt sbt-plugin

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

虽然这可能是过度偏执,但我尽量小心地尽量减少使用私人信息的软件的攻击面,并且在这些构建中不必要地运行服务器,即使是在 localhost 或 UNIX 套接字上,也感觉很不卫生。

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

非常感谢!


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

Eug*_*ota 7

至少从 sbt 1.1.0 开始,除非您启动 sbt shell,否则服务器不会启动,这意味着如果您sbt test在 CI 环境中以批处理模式(例如)运行 sbt ,它将没有服务器。

为了自动停止服务器甚至在 shell 中,我添加了一个 JVM 标志sbt.server.autostart。所以运行 sbtsbt -Dsbt.server.autostart=false就可以了。您可以通过将其放入您的SBT_OPTS.

要手动选择加入服务器,您可以运行:

> startServer
Run Code Online (Sandbox Code Playgroud)

更新:现在这autoStartServer是一个设置,您可以在以下内容中写入~/.sbt/1.0/global.sbt

> startServer
Run Code Online (Sandbox Code Playgroud)