如何更改Play执行"run"命令时使用的默认端口(9000)?

Bor*_*zic 204 port playframework playframework-2.0

在播放控制台上发出"run"命令时,如何更改播放框架中播放框架使用的默认端口.

这适用于playframework 2.0 beta.

在命令行或application.conf中使用http.port配置参数似乎没有任何效果:

C:\dev\prototype\activiti-preso>play run --http.port=8080
[info] Loading project definition from C:\dev\prototype\activiti-preso\project
[info] Set current project to activiti-preso (in build file:/C:/dev/prototype/activiti-preso/)


Windows, really? Ok, disabling colors.

--- (Running the application from SBT, auto-reloading is enabled) ---

[error] org.jboss.netty.channel.ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:9000
[error] Use 'last' for the full log.
Run Code Online (Sandbox Code Playgroud)

Jam*_*ard 400

播放1.x.

更改文件中的http.portconf/application.conf或传递命令行:

play run --http.port=8080
Run Code Online (Sandbox Code Playgroud)

播放2.x.

Play 2.x是一个sbt插件,因此以下命令实际上只是sbt命令.你可以使用任何SBT发射器(例如sbt,playactivator).下面的命令使用sbt启动器,但您可以将其替换为您选择的sbt启动器.

播放2.x - 开发模式

对于浏览器重新加载模式:

sbt "run 8080"
Run Code Online (Sandbox Code Playgroud)

对于连续重载模式:

sbt "~run 8080"
Run Code Online (Sandbox Code Playgroud)

播放2.x - 调试模式

要在端口上使用http侦听器以调试模式8080运行,请运行:

sbt -jvm-debug 9999 "run 8080"
Run Code Online (Sandbox Code Playgroud)

播放2.x - 产品模式

从产品模式开始:

sbt "start -Dhttp.port=8080"
Run Code Online (Sandbox Code Playgroud)

播放2.x - 分阶段发行

创建分阶段分发:

sbt stage
Run Code Online (Sandbox Code Playgroud)

对于Play 2.0.x和2.1.x,请使用target/start脚本(仅限Unix):

target/start -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

对于Play 2.2.x和2.3.x,请在target/universal/stage/bin目录中使用相应的启动脚本:

target/universal/stage/bin/[appname] -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

在Windows上使用Play 2.2.x和2.3.x:

target\universal\stage\bin\[appname].bat -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

播放2.x - Zip分配

要创建zip分发:

sbt dist
Run Code Online (Sandbox Code Playgroud)

对于Play 2.0.x和2.1.x,请start在解压缩的zip中使用脚本(仅限Unix):

start -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

对于Play 2.2.x,请使用[appname]-[version]/bin目录中的相应脚本:

[appname]-[version]/bin/[appname] -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

在Windows上使用Play 2.2.x:

[appname]-[version]\bin\[appname].bat -Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

  • 我正在运行Play 2.0.当我尝试'play run 8080`时它仍然运行在9000.我在Mac上.是什么赋予了?**编辑:**`play"run 8080"`有效! (18认同)
  • @StefanK.您不能将该端口放入Play配置文件中,因为直到Play正在侦听端口之后才会读取配置.您可以使用env var并将端口设置为该值. (6认同)

Jon*_*xon 33

播放2.0-RC4

在要运行的播放命令周围添加引号非常重要.在没有引号的情况下,播放仍然会在端口9000上运行.

play "run 8080"
Run Code Online (Sandbox Code Playgroud)

或者,您可以从播放控制台运行以下命令(键入'play'以进入控制台)

run 8080
Run Code Online (Sandbox Code Playgroud)

  • 对于在Windows上运行的人来说,第二个选项对我有用(Play 2.0.4 final). (4认同)

Arm*_*min 12

希望这有助于某人.

通过sbt设置:

...
.settings(PlayKeys.playDefaultPort := 8855)
...
Run Code Online (Sandbox Code Playgroud)

  • 这是正确答案!谢谢你!(对于像我这样的其他 SBT 和 Play 新手,请将 `.settings` 行添加到您的 `build.sbt` 文件中,位于 `lazy val root = (project in file("."))` 之后。有关 SBT 的更多详细信息设置,请参见此处:https://www.scala-sbt.org/1.0/docs/Custom-Settings.html) (2认同)

小智 7

版本2.0.3:

  • 转到项目目录,然后说播放(之后没有任何内容).这将打开游戏机.

  • 接下来,运行8080.这将开始在端口8080上播放.

我希望这有帮助.


Nit*_*wal 6

只需将以下行添加到您的build.sbt

PlayKeys.devSettings := Seq("play.server.http.port" -> "8080")


Wex*_*tux 5

对于带有可分发tar文件的Windows上的Play 2.2.x,我在可分发的根目录中创建了一个名为{PROJECT_NAME} _config.txt的文件,并添加了:

-Dhttp.port=8080
Run Code Online (Sandbox Code Playgroud)

应将{PROJECT_NAME}替换为项目名称.然后像往常一样在bin \目录中启动{PROJECT_NAME} .bat脚本.


小智 5

在Windows上播放2.2.0

使用zip发行版(使用“ dist”命令生成),我能够更改启动端口的唯一方法是首先设置JAVA_OPTS,然后启动应用程序。

例如,从命令行

set JAVA_OPTS=-Dhttp.port=9002
bin\myapp.bat
Run Code Online (Sandbox Code Playgroud)

其中,myapp.bat是由“ dist”命令创建的批处理文件。

以下内容将始终忽略我的http.port参数,并尝试在默认端口9000上启动

bin\myapp.bat -Dhttp.port=9002
Run Code Online (Sandbox Code Playgroud)

但是,我注意到这在Linux / OSX上可以正常工作,可以在请求的端口上启动:

./bin/myapp -Dhttp.port=9002
Run Code Online (Sandbox Code Playgroud)


小智 5

适用于Play 2.3.x.

激活器"运行-Dhttp.port = 9001"