7

我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过InteractionService.

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

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

非常感谢!


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

4

1 回答 1

7

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

为了在 shell 中自动停止服务器,我添加了一个 JVM 标志sbt.server.autostart。所以运行 sbtsbt -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
于 2018-02-03T04:24:20.973 回答