Lee*_*rus 4 scala sbt xsbt-web-plugin
我正在将我的构建从build.sbt移动到Build.scala文件,并且在使用xsbt-web-plugin时我无法覆盖jetty端口设置.使用build.sbt时,我可以使用以下方法设置属性:
port in container.Configuration := 8081
Run Code Online (Sandbox Code Playgroud)
在我的.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,
...
)
}
Run Code Online (Sandbox Code Playgroud)
我也试过在Build.scala的Project定义中覆盖它:
lazy val root = Project("test",file("."))
.settings(settings: _*)
.settings(port := 8081)
Run Code Online (Sandbox Code Playgroud)
但它总是从8080开始.在这两种情况下,运行show port显示8081.
问题是Web插件将其端口设置隐藏在配置中.它允许多个容器具有不同的端口设置.但是,它不是从非范围键中拉出端口(就像许多插件一样).
所以你必须明确地做:
port in:= 8081
在sbt控制台上,如果你inspect tree在服务器启动任务上执行,你可能会看到它依赖于<config>:part设置的某个地方.
我认为默认情况下,您需要:
port in container.Configuration := 8081
Run Code Online (Sandbox Code Playgroud)
如果您使用的是.scala文件,则可能还需要包含具有的文件Container,即
import com.earldouglas.xsbtwebplugin.WebPlugin.container
Run Code Online (Sandbox Code Playgroud)
我还建议在Web插件上打开一个功能请求,以自动将端口设置委托给Global默认Web插件,并为其指定默认设置.
您可以使用以下两种设置自行模仿:
port in container.Configuration := port in Global
port in Global := 8081
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |