「run」コマンドを実行するときにPlayが使用するデフォルトのポート(9000)を変更するにはどうすればよいですか?


207

Play Consoleで「run」コマンドを発行するときに、開発モードでPlayフレームワークが使用するデフォルトのポートを変更するにはどうすればよいですか。

これはplayframework 2.0ベータ版です。

コマンドラインまたは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.

3
それは本当だから@PereVillegaそれは陽気だ:github.com/playframework/playframework/blob/...
グレゴリーKalabin

1
「ウィンドウズ、本当に?」を見た後 私はWindowsに同僚を使用して、それがまだそれを行うかどうかを確認するように依頼する必要がありました。2.2.0を使用しており、そのメッセージは表示されなくなりましたが、色は無効になっています。ベータ版だけだったと思います。
Eric Wilson

PlayKeys.devSettings:= Seq( "play.server.http.port"-> "9001")をbuild.sbtに書き込みます
Rajat

回答:


407

2.xをプレイ

Play 2では、これらはsbtプラグインで実装されているため、次の手順は実際にはsbtタスクにすぎません。あなたは使用することができます任意のSBTランナー(Eでは2をプレイ、これらを用いて実装されているSBTプラグイン、次のことが本当にただSBTのタスクがあるので。あなたは、任意のSBTランナー(例えば使用することができsbtplayまたは activator)。以下は、sbtランナーに使用されています選択したsbtランナーの代わりに使用できます。

Play 2.x-開発モード

ブラウザ再読み込みモードの場合:

sbt "run 8080"

連続リロードモードの場合:

sbt "~run 8080"

Play 2.x-デバッグモード

ポート8080でHTTPリスナーを使用してデバッグモードで実行するには、次のコマンドを実行します。

sbt -jvm-debug 9999 "run 8080"

Play 2.x-Prodモード

製品モードで起動します。

sbt "start -Dhttp.port=8080"

Play 2.x-段階的な配布

段階的な配布を作成します。

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

WindowsのPlay 2.2.xおよび2.3.xの場合:

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

Play 2.x-Zip配布

zipディストリビューションを作成するには:

sbt dist

Play 2.0.xおよび2.1.xの場合start、解凍されたzipでスクリプト(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.xをプレイ

ファイルのhttp.port値を変更するconf/application.confか、コマンドラインに渡します。

play run --http.port=8080

興味深いことに、実際には機能しません。しかし、それはおそらく私のシステムのバグまたは問題にすぎません。
Boris Terzic

1
今のところ、これは1.x専用であり、2.0ベータにはまだ実装されていません
Pere Villega

18
Play 2.0を実行しています。試しplay run 8080てみると、9000でも動作します。Macを使用しています。何が出るの? 編集: play "run 8080"動作します!
Jay Q.

6
@StefanK。Playがポートでリッスンするまで設定が読み取られないため、ポートをPlay設定ファイルに入れることはできません。env varを使用して、ポートをそれに設定できます。
James Ward、

1
@ジェームズ私は回避策付きで次の問題を提出しました:github.com/sbt/sbt-native-packager/issues/155。ありがとう!
gfournier 2014

33

2.0-RC4をプレイ

実行する再生コマンドを引用符で囲むことが重要です。私の場合、引用符がなければ、playは引き続きポート9000で実行されます。

play "run 8080"

または、playコンソールから次のコマンドを実行することもできます(「play」と入力してコンソールに移動します)

run 8080

4
Windowsで実行している人にとっては、2番目のオプションがうまくいきました(Play 2.0.4 final)。
Baztoune、2012年

14

これが誰かを助けることを願っています。

sbt設定経由:

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

1
これが正解です。ありがとうございました!(私のような他のSBT and Playの初心者は、の後にファイルに.settings行を追加してください。SBT設定の詳細については、こちらを参照してください:scala-sbt.org/1.0/docs/Custom-Settings.htmlbuild.sbtlazy val root = (project in file("."))
Cameron Hudson

これは、プレイ2.7.xで機能することがわかった唯一のソリューションです
Coert Grobbelaar '20

7

バージョン2.0.3

  • プロジェクトディレクトリに移動して、playと発声します(その後は何もしません)。プレイコンソールが開きます。

  • 次に、8080を実行します。これにより、ポート8080で再生が開始されます。

これがお役に立てば幸いです。


5

配布可能なtarファイルを使用するWindows上のPlay 2.2.xの場合、配布可能なルートディレクトリに{PROJECT_NAME} _config.txtという名前のファイルを作成して追加しました。

-Dhttp.port=8080

ここで、{PROJECT_NAME}はプロジェクトの名前に置き換える必要があります。次に、通常どおり、bin \ディレクトリで{PROJECT_NAME} .batスクリプトを開始しました。


Windowsでは(distおよびzipオプションを使用)、コマンドライン引数を渡しても機能しません(play 2.2.0)。しかし、設定ファイルで同じ引数を指定すると、魅力のように機能します。
スカイウォーカー、2014年

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


4

.sbtoptsプロジェクトディレクトリでHTTPポートを設定することもできます。

-Dhttp.port=9001

その後、run毎回タスクに追加することを覚えておく必要はありません。

Play 2.1.1でテスト済み。



2

本日(11月25日)に導入されたコミットにより、runまたはstartsbtコマンドの直後にポート番号を指定できるようになりました。

例えば

play run 8080 または play start 8080

デフォルトでポート9000に再生


最新の更新情報をお寄せいただきありがとうございます。Jamesの回答を更新して情報を追加しました。おそらく、ここで正規の回答を作成できます。
Boris Terzic

2

Windowsでは「run 9001を実行」は機能しない可能性があります。play.batファイルを変更する必要があります。チケットを見る


リンクが壊れた場合に備えて、play.batファイルをここで変更する方法をすばやく示すこと(およびSOに関する支援を求める人をより迅速に支援すること)は、価値があるかもしれません。
テイラーR

2

Playコンソールから、ポート8888から実行する場合は、run 8888と入力するだけです。

play> run 8888

2

プレイ用2.5.x

手順1:Control + Dを使用してNettyサーバーを停止します(実行中の場合)。

ステップ2:sbt-dist / confに移動する

手順3:このファイル「sbtConfig.txt」を次のように編集します

-Dhttp.port=9005

ステップ4:サーバーを起動する

ステップ5:http:// host:9005 /



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

1

2.3.7 Playフレームワークでテスト済み。うまくいきます。

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

1

これは私がしました。sudo必要です。

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

編集:使用に問題があるのでsudo注意してください。最後にプロジェクトをクリーンアップしましたが、そのトリックはもう使用していません。


1
これはディストリビューション(Ubuntu ...)と、rootとしてログインしているかどうかによって異なります。
Pierre-Yves LeDévéhat、2015

1

Playバージョン2.5.6を使用しています。

ポートを変更するには、プロジェクトのルートフォルダーに移動し activator "run 8008"、コマンドプロンプト/ターミナルで次のキーを押します。

以上です。


0

Windowsでは、次のようにstart.batファイルを使用します。

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

-DapplyEvolutions.default = trueは、確認を求めずに進化を自動的に適用するように進化に指示します。もちろん、本番環境では注意して使用してください...


0

アビティベーターからアプリケーションポートを変更することはできませんが、コマンドラインアクティベーター "〜run 8080"から変更できます。

しかし、アクティベーターから詩人9000で実行するには、このポートを使用しているアプリケーションを停止する必要があります。このアプリケーションを使用してこれを見つけ、プロセスを終了することができますhttps://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

この後、実行でき、成功します。


0

開発中のポートを指定

デフォルトでは、SBTはポート9000でアプリケーションを実行します。

sbt run

ポートを指定するには、たとえば-Dhttp.portフラグを追加します。

sbt run -Dhttp.port=8080

-Dhttp.portフラグを使用すると、開発マシン上の複数のアプリケーションをデバッグできます。テストおよび実稼働環境で-Dhttp.portフラグを使用することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.