我正在将我的构建从build.sbt移动到Build.scala文件,并且在使用xsbt-web-plugin时无法覆盖码头端口设置。使用 build.sbt 时,我能够使用以下方法设置属性:
port in container.Configuration := 8081
在我的 .scala 文件中,我尝试了一些事情,但 jetty 总是从 8080 开始,例如在我的 BuildSettings 对象中:
import sbt._
import Keys._
import com.earldouglas.xsbtwebplugin.PluginKeys._
object BuildSettings {
lazy val settings = com.earldouglas.xsbtwebplugin.WebPlugin.webSettings ++ seq(
...
port := 8081,
...
)
}
我还尝试在 Build.scala 的项目定义中覆盖它:
lazy val root = Project("test",file("."))
.settings(settings: _*)
.settings(port := 8081)
但它总是从 8080 开始。在这两种情况下,运行show port
显示 8081。
问题是 Web 插件将其端口设置隐藏在配置中。 它允许具有不同端口设置的多个容器。 但是,它不会像许多插件那样从非作用域键中提取端口。
因此,您必须明确执行以下操作:
端口 := 8081
在 sbt 控制台上,如果您inspect tree
服务器启动任务,您可能会在某处看到它依赖于<config>:part
设置。
我认为默认情况下,您希望:
port in container.Configuration := 8081
如果你在.scala文件中,你可能还需要包含具有Container
的文件,即
import com.earldouglas.xsbtwebplugin.WebPlugin.container
我还建议在 Web 插件上打开一个功能请求,以自动将端口设置委托给Global
,并为默认 Web 插件指定默认值。
您可以使用以下两个设置自己模拟它:
port in container.Configuration := port in Global
port in Global := 8081
希望对您有所帮助!