Jak zmienić domyślny port (9000), z którego korzysta Play podczas wykonywania polecenia „uruchom”?

207

Jak mogę zmienić domyślny port używany przez środowisko gry w trybie programowania podczas wydawania polecenia „uruchom” na konsoli do gry.

To jest dla Playframework 2.0 beta.

Użycie parametru konfiguracyjnego http.port w wierszu polecenia lub w pliku application.conf wydaje się nie mieć wpływu:

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.
Boris Terzic
źródło
3
@PereVillega to zabawne, bo to prawda: github.com/playframework/playframework/blob/…
Gregory Kalabin
1
Po tym, jak zobaczyłem „Windows, naprawdę?” Musiałem poprosić mojego współpracownika Windows o sprawdzenie, czy nadal to robi. Używamy 2.2.0 i nie wyświetla już tego komunikatu, ale wyłącza kolory. Podejrzewam, że było to tylko w wersji beta.
Eric Wilson,
wstaw PlayKeys.devSettings: = Seq („play.server.http.port” -> „9001”) w build.sbt
Rajat

Odpowiedzi:

407

Zagraj w 2.x

W Play 2 są one implementowane za pomocą wtyczki SBT, więc poniższe instrukcje są tak naprawdę tylko zadaniami SBT. Można użyć dowolnego SBT biegacz (e W grać 2, są one realizowane ze związkiem SBT wtyczki, więc dodaje to zadania naprawdę tylko SBT. Można użyć dowolnego biegacza SBT (np sbt, playlub activator). Poniżej sbtbiegacza jest używany, ale może zastąpić go wybranym przez Ciebie biegaczem SBT.

Zagraj w 2.x - Tryb deweloperski

W trybie przeładowania przeglądarki:

sbt "run 8080"

W trybie ciągłego przeładowania:

sbt "~run 8080"

Zagraj w 2.x - Tryb debugowania

Aby uruchomić w trybie debugowania z odbiornikiem HTTP na porcie 8080, uruchom:

sbt -jvm-debug 9999 "run 8080"

Zagraj w 2.x - Tryb Prod

Uruchom w trybie Prod:

sbt "start -Dhttp.port=8080"

Zagraj w 2.x - Dystrybucja etapowa

Utwórz dystrybucję etapową:

sbt stage

W przypadku Play 2.0.x i 2.1.x użyj target/startskryptu (tylko Unix):

target/start -Dhttp.port=8080

W przypadku Play 2.2.x i 2.3.x użyj odpowiedniego skryptu startowego w target/universal/stage/binkatalogu:

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

W Play 2.2.x i 2.3.x w systemie Windows:

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

Zagraj w 2.x - Dystrybucja Zip

Aby utworzyć dystrybucję zip:

sbt dist

W przypadku Play 2.0.x i 2.1.x użyj startskryptu (tylko Unix) w rozpakowanym pliku zip:

start -Dhttp.port=8080

W przypadku Play 2.2.x użyj odpowiedniego skryptu w [appname]-[version]/binkatalogu:

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

W Play 2.2.x na Windows:

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

Zagraj w 1.x

Zmień http.portwartość w conf/application.confpliku lub przekaż go w wierszu polecenia:

play run --http.port=8080
James Ward
źródło
Co ciekawe, to tak naprawdę nie działa. Ale może to tylko błąd lub problem z moim systemem.
Boris Terzic
1
Wierzę, że teraz jest to tylko dla wersji 1.x, jeszcze nie zaimplementowane w wersji 2.0 beta
Pere Villega
18
Korzystam z Play 2.0. Kiedy próbuję play run 8080, nadal działa na 9000. Jestem na komputerze Mac. Co daje? EDYCJA: play "run 8080" działa!
Jay Q.
6
@StefanK. Nie można umieścić portu w pliku konfiguracji Play, ponieważ konfiguracja nie jest czytana, dopóki Play nie nasłuchuje na porcie. Możesz użyć env var i ustawić port do tego.
James Ward
1
@James Przesłałem następujący problem z obejściem: github.com/sbt/sbt-native-packager/issues/155 . Dzięki!
gfournier
33

Zagraj w 2.0-RC4

Ważne jest, aby dołączyć cudzysłowy wokół polecenia odtwarzania, które chcesz uruchomić. W moim przypadku bez cytatów gra nadal działałaby na porcie 9000.

play "run 8080"

Alternatywnie możesz uruchomić następujące polecenie z konsoli odtwarzania (wpisz „play”, aby dostać się do konsoli)

run 8080
Jonathan Dixon
źródło
4
W przypadku osób działających w systemie Windows druga opcja działała dla mnie (Play 2.0.4 wersja ostateczna).
Baztoune,
14

Mam nadzieję, że to komuś pomoże.

za pomocą ustawień sbt:

...
.settings(PlayKeys.playDefaultPort := 8855)
...
Armin
źródło
1
To poprawna odpowiedź! Dziękuję Ci! (W przypadku innych nowicjuszy SBT i Play, takich jak ja, dodaj .settingswiersz do build.sbtpliku po lazy val root = (project in file(".")). Więcej informacji o ustawieniach SBT można znaleźć tutaj: scala-sbt.org/1.0/docs/Custom-Settings.html )
Cameron Hudson
To jedyne rozwiązanie, które znalazłem, które działa w grze 2.7.x
Coert Grobbelaar,
7

Wersja 2.0.3 :

  • Przejdź do katalogu projektu i powiedz „ zagraj” (a potem nic więcej). To otworzy konsolę do gry.

  • Następnie powiedzmy uruchom 8080 . To rozpocznie grę na porcie 8080.

Mam nadzieję, że to pomoże.

Shashank Araokar
źródło
5

Dla Play 2.2.x w systemie Windows z rozpowszechnialnym plikiem tar utworzyłem plik w dystrybuowanym katalogu głównym o nazwie: {PROJECT_NAME} _config.txt i dodałem:

-Dhttp.port=8080

Gdzie {PROJECT_NAME} należy zastąpić nazwą twojego projektu. Następnie uruchom skrypt {PROJECT_NAME} .bat jak zwykle w katalogu bin \.

Wextux
źródło
w Windows (przy użyciu opcji dist i zip) przekazywanie argumentów wiersza poleceń nie działa (play 2.2.0). Ale podanie tych samych argumentów w pliku konfiguracyjnym działa jak urok.
skywalker
5

Zagraj w 2.2.0 na Windowsie

Używając dystrybucji zip (wyprodukowanej za pomocą polecenia „dist”), jedynym sposobem, w jaki mogłem zmienić port startowy, było ustawienie JAVA_OPTS, a następnie uruchomienie aplikacji.

Np. Z linii poleceń

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

gdzie myapp.bat jest plikiem wsadowym utworzonym za pomocą polecenia „dist”.

Poniższe zawsze zignoruje mój parametr http.port i spróbuje uruchomić na domyślnym porcie 9000

bin\myapp.bat -Dhttp.port=9002

Zauważyłem jednak, że działa to dobrze w systemie Linux / OSX, uruchamiając się na żądanym porcie:

./bin/myapp -Dhttp.port=9002
Jason Bass
źródło
5

Do gry 2.3.x

aktywator „run -Dhttp.port = 9001”

sumitarora
źródło
4

Możesz także ustawić port HTTP w .sbtoptskatalogu projektu:

-Dhttp.port=9001

Nie musisz wtedy pamiętać o dodawaniu go do runzadania za każdym razem.

Testowane w Play 2.1.1.

lachdrache
źródło
3

dla Play 2.5.x i Play 2.6.x

sbt "-Dhttp.port=9002"

następnie

run
Mesut Yiğit
źródło
2

Dzięki zatwierdzeniu wprowadzonemu dzisiaj (25 listopada) możesz teraz podać numer portu zaraz po poleceniach runlub startsbt.

Na przykład

play run 8080 lub play start 8080

Graj domyślnie do portu 9000

Olivier Refalo
źródło
Dzięki za najświeższe aktualizacje! Zaktualizowałem odpowiedź Jamesa, aby dodać twoje informacje, być może uda nam się zbudować odpowiedź kanoniczną tutaj.
Boris Terzic
2

W systemie Windows być może gra „uruchom 9001” nie będzie działać. Musisz zmienić plik play.bat. Zobacz bilet

Paddy
źródło
Przydatne może być szybkie wskazanie sposobu zmiany pliku play.bat na wypadek, gdyby link kiedykolwiek się zepsuł (i szybsze udzielenie pomocy komuś, kto szuka pomocy w SO).
Taylor R
2

W konsoli do gry wystarczy wpisać run 8888, jeśli chcesz uruchomić go z portu 8888.

play> run 8888
Siddhu
źródło
2

do gry 2.5.x

Krok 1: Zatrzymaj serwer Netty (jeśli jest uruchomiony) za pomocą control + D

Krok 2: Przejdź do sbt-dist / conf

Krok 3: edytuj ten plik 'sbtConfig.txt' za pomocą tego

-Dhttp.port=9005

Krok 4: Uruchom serwer

Krok 5: http: // host: 9005 /

konstabl
źródło
2

Po prostu dodaj następujący wiersz w swoim build.sbt

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

Nitin Aggarwal
źródło
1

Play 2.2.1 w systemie Windows obsługuje zmienną środowiskową PLAY_OPTS. Plik play.bat Play zawiera następujący wiersz:

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" %*

więc, aby uruchomić na porcie 9002, zrób

set PLAY_OPTS=-Dhttp.port=9002
play run
IanRae
źródło
1

Testowane z frameworkiem Play 2.3.7. Działa dobrze.

./{application}/bin/{executable} -Dhttp.port=5000
Venkatesh
źródło
1

Ja to zrobiłem. sudojest konieczne.

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

EDYCJA: Miałem problemy z używaniem, sudowięc uważaj. W końcu posprzątałem projekt i nie użyłem już tej sztuczki.

Ferran Maylinch
źródło
1
To zależy od twojej dystrybucji (Ubuntu ...) i od tego, czy jesteś zalogowany jako root, czy nie.
Pierre-Yves Le Dévéhat
1

Używamy Play w wersji 2.5.6.

Aby zmienić port, przejdź do folderu głównego projektu i naciśnij: activator "run 8008"w wierszu polecenia / terminalu.

i to wszystko.

Swapnil Kadu
źródło
0

W systemie Windows używam pliku start.bat w następujący sposób:

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

-DapplyEvolutions.default = true mówi ewolucji, aby automatycznie zastosowała ewolucje bez pytania o potwierdzenie. Używaj ostrożnie w środowisku produkcyjnym, oczywiście ...

opensas
źródło
0

Nie możemy zmienić portu aplikacji z avtivatora, ale możemy zmienić z aktywatora wiersza poleceń „~ run 8080”

Ale aby uruchomić poetę 9000 z aktywatora, musimy zatrzymać aplikację korzystającą z tego portu. Możemy użyć tej aplikacji, aby to znaleźć i zakończyć proces https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

Po tym możemy uruchomić i to się powiedzie.

Avinav Mishra
źródło
0

Określ port w fazie rozwoju

Domyślnie SBT uruchamia aplikację na porcie 9000:

sbt run

Aby określić port, dodaj flagę -Dhttp.port , na przykład:

sbt run -Dhttp.port=8080

Za pomocą flagi -Dhttp.port można debugować wiele aplikacji na komputerze programistycznym. Uwaga: flagi -Dhttp.port można także używać w środowiskach testowych i produkcyjnych.

LineDrop
źródło