使用Build.scala文件时重写jetty端口设置

使用Build.scala文件时重写jetty端口设置,scala,sbt,xsbt-web-plugin,Scala,Sbt,Xsbt Web Plugin,我将构建从build.sbt移到build.scala文件,在使用xsbt web插件时覆盖jetty端口设置时遇到问题。使用build.sbt时,我可以使用以下方法设置属性: port in container.Configuration := 8081 在我的.scala文件中,我尝试了一些方法,但jetty总是从8080开始,例如在我的BuildSettings对象中: 我还尝试在Build.scala中的项目定义中覆盖它: 但它总是从8080开始。在这两种情况下,运行show port

我将构建从build.sbt移到build.scala文件,在使用xsbt web插件时覆盖jetty端口设置时遇到问题。使用build.sbt时,我可以使用以下方法设置属性:

port in container.Configuration := 8081
在我的.scala文件中,我尝试了一些方法,但jetty总是从8080开始,例如在我的BuildSettings对象中:

我还尝试在Build.scala中的项目定义中覆盖它:


但它总是从8080开始。在这两种情况下,运行
show port
显示8081。

问题在于web插件将其端口设置隐藏在配置中。它允许使用不同端口设置的多个容器。然而,它并不是从非作用域密钥中提取端口(就像许多插件一样)

因此,您必须明确地执行以下操作:

输入端口:=8081

在sbt控制台上,如果您对服务器启动任务执行
检查树
,您可能会看到它依赖于
:part
设置的某个地方

我认为默认情况下,您需要:

port in container.Configuration := 8081
如果您在.scala文件中,您可能还需要包含包含
容器的文件,即

import com.earldouglas.xsbtwebplugin.WebPlugin.container
我还建议在web插件上打开一个功能请求,自动将端口设置委托给
Global
,并为默认web插件指定默认端口设置

您可以通过以下两种设置自己模拟:

port in container.Configuration := port in Global

port in Global := 8081

希望有帮助

您是否尝试过使用容器中的端口。配置:=8081,就像在build.sbt中一样?我的项目中没有build.sbt,我已经完全使用了.scala文件,而不是混合配置。我知道。但你说它奏效了。那么,为什么不尝试以相同的方式(包括在container.Configuration中)将其写入scala文件呢?
import com.earldouglas.xsbtwebplugin.WebPlugin.container
port in container.Configuration := port in Global

port in Global := 8081