在播放控制台上发出“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.
答案 0 :(得分:394)
更改http.port
文件中的conf/application.conf
值或传递命令行:
play run --http.port=8080
Play 2.x是一个sbt插件,因此以下命令实际上就是这样 sbt命令。您可以使用任何sbt启动器(例如
sbt
,play
或activator
)。以下命令使用sbt
启动器但是 你可以用它代替你选择的sbt发射器。
对于浏览器重新加载模式:
sbt "run 8080"
对于连续重载模式:
sbt "~run 8080"
要在端口8080
上使用http侦听器以调试模式运行,请运行:
sbt -jvm-debug 9999 "run 8080"
从Prod模式开始:
sbt "start -Dhttp.port=8080"
创建分阶段发布:
sbt stage
对于Play 2.0.x和2.1.x,请使用target/start
脚本(仅限Unix):
target/start -Dhttp.port=8080
适用于Play 2.2.x& 2.3.x使用target/universal/stage/bin
目录中的相应启动脚本:
target/universal/stage/bin/[appname] -Dhttp.port=8080
Play 2.2.x& Windows上的2.3.x:
target\universal\stage\bin\[appname].bat -Dhttp.port=8080
创建zip分发:
sbt dist
对于Play 2.0.x和2.1.x,在提取的zip中使用start
脚本(仅限Unix):
start -Dhttp.port=8080
对于Play 2.2.x,请使用[appname]-[version]/bin
目录中的相应脚本:
[appname]-[version]/bin/[appname] -Dhttp.port=8080
在Windows上使用Play 2.2.x:
[appname]-[version]\bin\[appname].bat -Dhttp.port=8080
答案 1 :(得分:32)
播放2.0-RC4
在要运行的播放命令周围添加引号非常重要。在没有引号的情况下,播放仍会在端口9000上运行。
play "run 8080"
或者,您可以从播放控制台运行以下命令(键入'play'以进入控制台)
run 8080
答案 2 :(得分:10)
希望这有助于某人。
通过sbt设置:
...
.settings(PlayKeys.playDefaultPort := 8855)
...
答案 3 :(得分:7)
版本2.0.3 :
转到项目目录,然后说播放(之后没有任何内容)。 这将打开游戏机。
接下来,说运行8080 。这将在8080端口开始播放。
我希望这会有所帮助。
答案 4 :(得分:5)
对于带有可分发tar文件的Windows上的Play 2.2.x,我在可分发的根目录中创建了一个名为{PROJECT_NAME} _config.txt的文件,并添加了:
-Dhttp.port=8080
应将{PROJECT_NAME}替换为项目名称。然后像往常一样在bin \目录中启动{PROJECT_NAME} .bat脚本。
答案 5 :(得分:5)
在Windows上播放2.2.0
使用zip分发(使用“dist”命令生成),我能够更改启动端口的唯一方法是首先设置JAVA_OPTS然后启动应用程序。
,例如,从命令行
set JAVA_OPTS=-Dhttp.port=9002
bin\myapp.bat
其中myapp.bat是“dist”命令创建的批处理文件。
以下将始终忽略我的http.port参数并尝试在默认端口9000
上启动bin\myapp.bat -Dhttp.port=9002
但是,我注意到这在Linux / OSX上工作正常,在请求的端口启动:
./bin/myapp -Dhttp.port=9002
答案 6 :(得分:5)
Play Play 2.3.x
激活器“运行-Dhttp.port = 9001”
答案 7 :(得分:4)
您还可以在项目目录中的.sbtopts
中设置HTTP端口:
-Dhttp.port=9001
然后,您不必每次都记得将其添加到run
任务中。
使用Play 2.1.1进行测试。
答案 8 :(得分:3)
适用于Play 2.5.x和Play 2.6.x
sbt "-Dhttp.port=9002"
然后
run
答案 9 :(得分:2)
通过今天(11月25日)提交的提交,您现在可以在run
或start
sbt命令之后立即指定端口号。
例如
play run 8080
或play start 8080
播放默认为端口9000
答案 10 :(得分:2)
在Windows上,播放“run 9001”可能无效。您必须更改play.bat文件。见Ticket
答案 11 :(得分:2)
如果你想从8888端口运行它,你只需要从播放控制台输入run 8888。
play> run 8888
答案 12 :(得分:2)
for play 2.5.x
步骤1:使用control + D
停止netty服务器(如果它正在运行)第2步:转到sbt-dist / conf
步骤3:使用此
编辑此文件'sbtConfig.txt'-Dhttp.port=9005
第4步:启动服务器
答案 13 :(得分:1)
使用2.3.7 Play框架测试。效果很好。
./{application}/bin/{executable} -Dhttp.port=5000
答案 14 :(得分:1)
我注意到没有人提到通过环境变量(对CI / CD友好)来实现这一目标。
export PLAY_HTTP_PORT=1234
export PLAY_HTTPS_PORT=1235
设置后,在执行sbt run
,sbt start
或运行可执行文件进行产品部署时,Play将从这些环境变量中读取以确定端口。有关更多信息,请参见docs。
答案 15 :(得分:1)
默认情况下,SBT在端口9000上运行应用程序:
sbt run
要指定端口,请添加 -Dhttp.port 标志,例如:
sbt run -Dhttp.port=8080
使用 -Dhttp.port 标志,可以在开发计算机上调试多个应用程序。请注意,您还可以在测试和生产环境中使用 -Dhttp.port 标志。
答案 16 :(得分:1)
我们正在使用Play版本2.5.6。
要更改端口,请转到项目根文件夹并点击:
命令提示符/终端中的activator "run 8008"
。
那就是它。
答案 17 :(得分:1)
我这样做了。 sudo
是必要的。
$ sudo play debug -Dhttp.port=80
...
[MyPlayApp] $ run
编辑:由于使用sudo
我遇到了问题所以要小心。最后我清理了项目,我再也没有使用过这个技巧了。
答案 18 :(得分:1)
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
答案 19 :(得分:0)
我们无法从avtivator更改应用程序端口,但可以从命令行激活器更改"〜运行8080"
但是要从激活器上运行诗人9000,我们需要停止正在使用此端口的应用程序。我们可以使用此应用程序来查找并结束流程https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
在此之后我们可以运行并且它会成功。
答案 20 :(得分:0)
只需在您的build.sbt
中添加以下行
PlayKeys.devSettings := Seq("play.server.http.port" -> "8080")
答案 21 :(得分:0)
在Windows上,我使用这样的start.bat文件:
java -Dhttp.port=9001 -DapplyEvolutions.default=true -cp "./lib/*;" play.core.server.NettyServer "."
-DapplyEvolutions.default = true告诉evolution自动应用进化而不要求确认。当然要谨慎使用生产环境......
答案 22 :(得分:0)
您可以使用其他选项在项目根目录内的 .jvmopts
文件中进行设置:
-Dhttp.port=9100
您还可以添加其他选项,例如使用
加载不同的配置文件-Dconfig.file=<config_file_absolute_path>
设置 .jvmopts
文件后,您不必记得向命令行添加一些参数,只需执行以下操作:
sbt run