当在play控制台发出“run”命令时,如何更改开发模式下play框架使用的默认端口。

这是playframework 2.0测试版。

使用http。端口配置参数在命令行或在application.conf中似乎没有影响:

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.

当前回答

我做了这个。须道是必要的。

$ sudo play debug -Dhttp.port=80
...
[MyPlayApp] $ run

编辑:我有问题,因为使用sudo所以要小心。最后,我清理了这个项目,不再使用这个技巧了。

其他回答

在播放控制台,如果你想从端口8888运行它,你只需要输入run 8888。

play> run 8888

Windows上的Play 2.2.1支持PLAY_OPTS环境变量。Play的Play .bat文件包含这一行:

java -Dsbt.ivy.home="%~dp0repository" -Dplay.home="%~dp0framework" -Dsbt.boot.properties="%fp%framework/sbt/play.boot.properties" %PLAY_OPTS% -jar "%~dp0framework\sbt\sbt-launch.jar" %*

因此,要在端口9002上运行,请执行

set PLAY_OPTS=-Dhttp.port=9002
play run

我注意到没有人提到通过环境变量(CI/CD友好)来实现这一点。

export PLAY_HTTP_PORT=1234
export PLAY_HTTPS_PORT=1235

设置完成后,Play将从这些环境变量中读取,以便在执行sbt运行、sbt启动或运行用于prod部署的可执行文件时确定端口。更多信息请参阅医生。

我做了这个。须道是必要的。

$ sudo play debug -Dhttp.port=80
...
[MyPlayApp] $ run

编辑:我有问题,因为使用sudo所以要小心。最后,我清理了这个项目,不再使用这个技巧了。

你也可以在项目目录的.sbtopts中设置HTTP端口:

-Dhttp.port=9001

这样就不必每次都记得将其添加到运行任务中。

使用Play 2.1.1测试。