可以禁用 sbt 1.x 服务器吗?
Can one disable the sbt 1.x server?
我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过 InteractionService
输入并保留在内存中)。
虽然可能有点偏执,但我会尽量减少使用私人信息的软件的攻击面,感觉 运行 服务器的卫生状况很差,即使是在本地主机或 UNIX 套接字上也是如此,在这些构建中不必要。
我一直在寻找可以在插件中设置的设置,该设置将禁用服务器启动,除非被构建覆盖。到目前为止还没有发现这样的东西。有这样的设置吗?
非常感谢!
更新: 在 Eugene Yokota 的帮助下,从 sbt 1.1.1 开始,现在有一个布尔值 autoStartServer
设置。构建和插件可以通过设置 autoStartServer := false
来阻止服务器自动启动。 (如果愿意,用户仍然可以通过 运行ning startServer
手动启动服务器。)
至少从 sbt 1.1.0 开始,除非您启动 sbt shell,否则服务器不会启动,这意味着如果您 运行ning sbt 处于批处理模式(对于例如 sbt test
) 在 CI 环境中,它不会有服务器。
为了在 shell 中自动停止服务器,我添加了一个 JVM 标志 sbt.server.autostart
。所以 运行ning sbt as sbt -Dsbt.server.autostart=false
会这样做。您可以通过将其放入 SBT_OPTS
.
来全局设置它
要手动选择加入服务器,您可以 运行:
> startServer
Update:既然autoStartServer
是一个设置,那么在~/.sbt/1.0/global.sbt
中可以这样写:
// This is so it works on sbt 1.x prior to 1.1.1
SettingKey[Boolean]("autoStartServer", "") := false
我的一些构建和插件使用私有部署凭据(有时从文件系统读取,有时通过 InteractionService
输入并保留在内存中)。
虽然可能有点偏执,但我会尽量减少使用私人信息的软件的攻击面,感觉 运行 服务器的卫生状况很差,即使是在本地主机或 UNIX 套接字上也是如此,在这些构建中不必要。
我一直在寻找可以在插件中设置的设置,该设置将禁用服务器启动,除非被构建覆盖。到目前为止还没有发现这样的东西。有这样的设置吗?
非常感谢!
更新: 在 Eugene Yokota 的帮助下,从 sbt 1.1.1 开始,现在有一个布尔值 autoStartServer
设置。构建和插件可以通过设置 autoStartServer := false
来阻止服务器自动启动。 (如果愿意,用户仍然可以通过 运行ning startServer
手动启动服务器。)
至少从 sbt 1.1.0 开始,除非您启动 sbt shell,否则服务器不会启动,这意味着如果您 运行ning sbt 处于批处理模式(对于例如 sbt test
) 在 CI 环境中,它不会有服务器。
为了在 shell 中自动停止服务器,我添加了一个 JVM 标志 sbt.server.autostart
。所以 运行ning sbt as sbt -Dsbt.server.autostart=false
会这样做。您可以通过将其放入 SBT_OPTS
.
要手动选择加入服务器,您可以 运行:
> startServer
Update:既然autoStartServer
是一个设置,那么在~/.sbt/1.0/global.sbt
中可以这样写:
// This is so it works on sbt 1.x prior to 1.1.1
SettingKey[Boolean]("autoStartServer", "") := false