当在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.

玩的2.倍

在Play 2中,这些都是用sbt插件实现的,所以下面的指令实际上只是sbt任务。您可以使用任何sbt运行程序(例如 在Play 2中,这些都是用sbt插件实现的,所以下面这些真的只是 sbt任务。您可以使用任何sbt运行器(例如,sbt, play或 激活)。下面使用sbt运行器,但是 你可以用它代替你选择的SBT跑步机。

玩2。x—Dev模式

浏览器重载模式:

sbt "run 8080"

连续装填模式:

sbt "~run 8080"

玩2。x -调试模式

使用http监听器在端口8080上运行调试模式,执行以下命令:

sbt -jvm-debug 9999 "run 8080"

玩2。- Prod模式

Prod模式启动:

sbt "start -Dhttp.port=8080"

玩2。x -分段分布

创建一个分阶段分发:

sbt stage

Play 2.0。X和2.1。x使用目标/启动脚本(仅适用于Unix):

target/start -Dhttp.port=8080

Play 2.2。X & 2.3。在target/universal/stage/bin目录下使用适当的启动脚本:

target/universal/stage/bin/[appname] -Dhttp.port=8080

使用Play 2.2。X & 2.3。Windows操作系统:

target\universal\stage\bin\[appname].bat -Dhttp.port=8080

玩2。x - Zip分发

要创建zip分发:

sbt dist

Play 2.0。X和2.1。在解压后的zip文件中使用启动脚本(仅适用于Unix):

start -Dhttp.port=8080

Play 2.2。X在[appname]-[version]/bin目录下使用适当的脚本:

[appname]-[version]/bin/[appname] -Dhttp.port=8080

使用Play 2.2。Windows操作系统:

[appname]-[version]\bin\[appname].bat -Dhttp.port=8080

玩的1.倍

修改http. conf文件。在conf/application.conf文件中输入端口值或通过命令行:

play run --http.port=8080

随着今天(11月25日)引入的提交,您现在可以在run或start sbt命令之后指定端口号。

例如

播放运行8080或播放开始8080

Play默认端口为9000


玩2.0 rc4

在要运行的play命令周围包含引号是很重要的。在我的情况下,没有引号发挥仍然运行在端口9000。

play "run 8080"

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

run 8080

版本2.0.3:

转到项目目录,只说play(在那之后什么都没有)。 这将打开播放控制台。 接下来,运行8080。这将在端口8080上开始播放。

我希望这能有所帮助。


在Windows上,“运行9001”可能无法运行。你必须改变play.bat文件。看到机票


在windows上,我使用这样的start.bat文件:

java -Dhttp.port=9001 -DapplyEvolutions.default=true -cp "./lib/*;" play.core.server.NettyServer "."

- dapplyevoludings .default=true告诉evolution自动应用evolution而不需要确认。当然,在生产环境中使用时要谨慎……


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

-Dhttp.port=9001

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

使用Play 2.1.1测试。


Play 2.2。我在可分配根目录中创建了一个名为{PROJECT_NAME}_config.txt的文件,并添加:

-Dhttp.port=8080

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


在Windows上播放2.2.0

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

例如,从命令行

set JAVA_OPTS=-Dhttp.port=9002
bin\myapp.bat

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

下面的代码总是会忽略我的http。端口参数,并尝试在默认端口9000上启动

bin\myapp.bat -Dhttp.port=9002

然而,我注意到这在Linux/OSX上工作得很好,在请求的端口上启动:

./bin/myapp -Dhttp.port=9002

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

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

play> run 8888

使用2.3.7 Play框架测试。工作得很好。

./{application}/bin/{executable} -Dhttp.port=5000

我们不能从激活器更改应用程序端口,但可以从命令行激活器“~run 8080”更改。

但是要从激活器上运行poet 9000,我们需要停止正在使用该端口的应用程序。我们可以使用this应用程序来查找并结束该过程https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

在此之后,我们可以运行,它将成功。


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

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

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


Play 2.3.x

激活器"run -Dhttp.port=9001"


我们使用的是Play 2.5.6版本。

要更改端口,请转到项目根文件夹并点击: 在命令提示符/终端激活“run 8008”。

就是这样。


Play 2.5。Play 2.6.x

sbt "-Dhttp.port=9002"

然后

run

播放2.5.x

步骤1:使用control + D停止netty服务器(如果它正在运行)

步骤2:进入sbt-dist/conf目录

步骤3:编辑这个文件“sbtConfig.txt”

-Dhttp.port=9005

步骤4:启动服务器

第五步:http://host:9005/


希望这能帮助到一些人。

通过SBT设置:

...
.settings(PlayKeys.playDefaultPort := 8855)
...

只需在build.sbt中添加以下行

PlayKeys.devSettings:= Seq("play.server.http. play. devsettings . "端口" -> "8080")


指定开发中的端口

缺省情况下,SBT在9000端口上运行应用程序:

sbt run

使用实例指定端口add -Dhttp。端口标志,例如:

sbt run -Dhttp.port=8080

使用-Dhttp。端口标志,您可以在开发机器上调试多个应用程序。请注意,您也可以使用-Dhttp。测试和生产环境中的端口标志。


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

export PLAY_HTTP_PORT=1234
export PLAY_HTTPS_PORT=1235

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


你可以在项目根目录下的.jvmopts文件中设置其他选项:

-Dhttp.port=9100

您还可以添加其他选项,如加载不同的配置文件

-Dconfig.file=<config_file_absolute_path>

在你设置了.jvmopts文件之后,你不需要记得在命令行中添加一些参数,只需要这样做:

sbt run

在2.8版中。X你可以使用特定的资源文件或特定的端口运行(如果只运行sbt,你将使用application.conf和默认端口9000)

sbt运行-dconfig.resource=application.local.conf -dhttp.port=9002