जब मैं "रन" कमांड निष्पादित करता हूं तो मैं डिफ़ॉल्ट पोर्ट (9000) को कैसे बदल सकता हूं?


207

प्ले कंसोल पर "रन" कमांड जारी करने के दौरान मैं विकास मोड में प्ले फ्रेमवर्क द्वारा उपयोग किए गए डिफ़ॉल्ट पोर्ट को कैसे बदल सकता हूं।

यह प्लेफरामवर्क 2.0 बीटा के लिए है।

कमांड लाइन पर या अनुप्रयोग में 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/…
ग्रेगरी कालबिन

1
बाद मैंने देखा "विंडोज, वास्तव में?" मुझे अपने विंडोज को सहकर्मी का उपयोग करके यह पूछने के लिए पूछना था कि क्या यह अभी भी ऐसा करता है। हम 2.2.0 का उपयोग कर रहे हैं, और यह अब उस संदेश को प्रदर्शित नहीं करता है, लेकिन यह रंगों को अक्षम करता है। मुझे संदेह है कि यह केवल बीटा संस्करण में था।
एरिक विल्सन

PlayKeys.devSettings रखो: = Seq ("play.server.http.port" -> build.sbt में> "9001")
रजत

जवाबों:


407

2.x चलाएं

प्ले 2 में, ये एक sbt प्लगइन के साथ कार्यान्वित किए जाते हैं, इसलिए निम्नलिखित निर्देश वास्तव में सिर्फ sbt कार्य हैं। आप उपयोग कर सकते हैं किसी भी एसबीटी धावक (ड में खेलते हैं 2, इन के साथ लागू किया जाता है एक एसबीटी प्लगइन है, तो निम्नलिखित वास्तव में सिर्फ एसबीटी कार्य कर रहे हैं। आप किसी भी एसबीटी धावक (जैसे उपयोग कर सकते हैं sbt, playया activator)। नीचे sbtधावक प्रयोग किया जाता है, लेकिन आप अपनी पसंद के sbt धावक के लिए इसे स्थानापन्न कर सकते हैं।

प्ले 2.x - देव मोड

ब्राउज़र-रीलोड मोड के लिए:

sbt "run 8080"

निरंतर-पुनः लोड मोड के लिए:

sbt "~run 8080"

प्ले 2.x - डिबग मोड

पोर्ट पर http श्रोता के साथ डीबग मोड में 8080चलाने के लिए:

sbt -jvm-debug 9999 "run 8080"

प्ले 2.x - प्रोडक्शन मोड

उत्पादन मोड में शुरू करें:

sbt "start -Dhttp.port=8080"

प्ले 2.x - मंचित वितरण

मंचन वितरण बनाएँ:

sbt stage

प्ले 2.0.x और 2.1.x के लिए target/startस्क्रिप्ट का उपयोग करें (केवल यूनिक्स):

target/start -Dhttp.port=8080

Play 2.2.x & 2.3.x के लिए target/universal/stage/binनिर्देशिका में उपयुक्त प्रारंभ स्क्रिप्ट का उपयोग करें :

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

विंडोज पर प्ले 2.2.x और 2.3.x के साथ:

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

प्ले 2.x - जिप डिस्ट्रीब्यूशन

ज़िप वितरण बनाने के लिए:

sbt dist

Play 2.0.x और 2.1.x के लिए startनिकाली गई ज़िप में स्क्रिप्ट (केवल यूनिक्स) का उपयोग करें :

start -Dhttp.port=8080

प्ले 2.2.x के लिए [appname]-[version]/binनिर्देशिका में उपयुक्त स्क्रिप्ट का उपयोग करें :

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

विंडोज पर प्ले 2.2.x के साथ:

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

1.x खेलो

फ़ाइल http.portमें मान बदलें conf/application.confया इसे कमांड लाइन पास करें:

play run --http.port=8080

दिलचस्प बात यह है कि वास्तव में काम नहीं करता है। लेकिन शायद यह सिर्फ एक बग या मेरी प्रणाली के साथ एक मुद्दा है।
बोरिस टेरजिक

1
मेरा मानना ​​है कि अभी यह केवल 1.x के लिए है, अभी तक 2.0 बीटा में लागू नहीं हुआ है
Pere Villega

18
मैं प्ले 2.0 चला रहा हूं। जब मैं कोशिश play run 8080करता हूं कि यह अभी भी 9000 पर चलता है। मैं एक मैक पर हूं। क्या देता है? संपादित करें: play "run 8080" काम करता है!
जे। क्यू

6
@StefanK। आप पोर्ट को प्ले कॉन्फिग फाइल में नहीं डाल सकते क्योंकि प्ले पर सुनने के बाद तक कॉन्फिगर नहीं पढ़ा जाता है। आप एक env var का उपयोग कर सकते हैं और उस पोर्ट को सेट कर सकते हैं।
जेम्स वार्ड

1
@ जेम्स मैंने निम्नलिखित मुद्दे को वर्कअराउंड के साथ सबमिट किया है: github.com/sbt/sbt-native-packager/issues/155 । धन्यवाद!
gfournier

33

प्ले 2.0-आरसी 4

आप जिस कमांड को चलाना चाहते हैं, उसके आसपास के उद्धरणों को शामिल करना महत्वपूर्ण है। मेरे मामले में उद्धरण के बिना अभी भी पोर्ट 9000 पर चलेगा।

play "run 8080"

वैकल्पिक रूप से आप प्ले कंसोल से टाइप कर सकते हैं (कंसोल में जाने के लिए 'प्ले' टाइप करें)

run 8080

4
विंडोज पर चलने वाले लोगों के लिए, दूसरे विकल्प ने मेरे लिए काम किया (प्ले 2.0.4 फाइनल)।
बज़्तौने

14

आशा है कि यह किसी की मदद करता है।

sbt सेटिंग्स के माध्यम से:

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

1
यह सही जवाब है! धन्यवाद! (मेरे जैसे अन्य एसबीटी और प्ले नौसिखियों के .settingsलिए build.sbt, बाद में अपनी फ़ाइल में लाइन जोड़ें lazy val root = (project in file("."))। एसबीटी सेटिंग्स के बारे में अधिक जानकारी के लिए यहां देखें: scala-sbt.org/1.0/docs/Custom-Settings.html )
कैमरन हडसन

यह एकमात्र उपाय है जो मैंने पाया है कि खेल में काम करता है 2.7.x
कॉर्ट ग्रोबबेला

7

संस्करण 2.0.3 :

  • प्रोजेक्ट डायरेक्टरी में जाएं और केवल प्ले प्ले करें (और उसके बाद कुछ भी नहीं)। इससे प्ले कंसोल खुल जाएगा।

  • इसके बाद, 8080 चलाएं । यह पोर्ट 8080 पर खेलना शुरू करेगा।

आशा है कि ये आपकी मदद करेगा।


5

एक वितरण योग्य टार फाइल के साथ विंडोज पर प्ले 2.2.x के लिए मैंने डिस्ट्रीब्यूटेबल रूट डायरेक्टरी में एक फाइल बनाई, जिसे: {PROJECT_NAME} _config.txt और जोड़ा गया:

-Dhttp.port=8080

जहाँ {PROJECT_NAME} को आपकी परियोजना के नाम से बदला जाना चाहिए। फिर बिन \ डायरेक्टरी में हमेशा की तरह {PROJECT_NAME} .bat स्क्रिप्ट शुरू की।


विंडोज़ में (डिस्टर्ब और जिप विकल्पों का उपयोग करके), कमांड लाइन तर्क पास करने से काम नहीं होता (प्ले 2.2.0)। लेकिन config फाइल में समान तर्क प्रदान करना आकर्षण की तरह काम करता है।
स्काईवॉकर

5

विंडोज पर 2.2.0 चलाएं

ज़िप वितरण ("डिस्ट" कमांड का उपयोग करके निर्मित) का उपयोग करके, स्टार्टअप पोर्ट को बदलने का एकमात्र तरीका मैं पहले JAVA_OPTS सेट कर रहा था और फिर एप्लिकेशन लॉन्च कर रहा था।

जैसे, कमांड लाइन से

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

जहाँ myapp.bat "dist" कमांड द्वारा बनाई गई बैच फ़ाइल है।

निम्नलिखित हमेशा मेरे http.port पैरामीटर को अनदेखा करेगा और डिफ़ॉल्ट पोर्ट, 9000 पर शुरू करने का प्रयास करेगा

bin\myapp.bat -Dhttp.port=9002

हालाँकि, मैंने देखा है कि यह लिनक्स / OSX पर ठीक काम करता है, अनुरोधित पोर्ट पर शुरू होता है:

./bin/myapp -Dhttp.port=9002


4

आप HTTP पोर्ट .sbtoptsको प्रोजेक्ट डायरेक्टरी में भी सेट कर सकते हैं :

-Dhttp.port=9001

फिर आपको इसे runहर बार टास्क में शामिल करने के लिए याद रखने की जरूरत नहीं है ।

प्ले 2.1.1 के साथ परीक्षण किया गया।



2

प्रतिबद्ध शुरू की आज (नवम्बर 25) के साथ, अब के बाद एक पोर्ट संख्या सही निर्दिष्ट कर सकते हैं runया startएसबीटी आदेशों।

उदाहरण के लिए

play run 8080 या play start 8080

पोर्ट 9000 में डिफॉल्ट खेलें


मिनट अपडेट के लिए धन्यवाद! मैंने आपकी जानकारी जोड़ने के लिए जेम्स के उत्तर को अपडेट किया, शायद हम यहां एक कैनोनिकल उत्तर का निर्माण कर सकते हैं।
बोरिस टेरजिक

2

विंडोज पर शायद नाटक "रन 9001" काम नहीं करेगा। आपको play.bat फ़ाइल को बदलना होगा। टिकट देखें


कभी-कभी लिंक टूटने पर (और अधिक तेज़ी से SO पर सहायता की तलाश में किसी को मदद करने के लिए), यह इंगित करने के लिए कि यहां play.bat फ़ाइल को कैसे बदलना है, यह मूल्यवान हो सकता है।
टेलर आर

2

यदि आप इसे 8888 पोर्ट से चलाना चाहते हैं, तो प्ले कंसोल से, आपको बस 8888 टाइप करना होगा।

play> run 8888

2

2.5.x खेलने के लिए

चरण 1: नियंत्रण + डी का उपयोग करके नेट्टी सर्वर (यदि यह चल रहा है) को रोकें

चरण 2: sbt-dist / conf पर जाएं

चरण 3: इस फ़ाइल को 'sbtConfig.txt' से संपादित करें

-Dhttp.port=9005

चरण 4: सर्वर शुरू करें

चरण 5: http: // मेजबान: 9005 /



1

Windows पर 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 प्ले फ्रेमवर्क के साथ परीक्षण किया गया। अच्छा काम करता है।

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

1

इसे मैने किया है। sudoआवश्यक है।

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

संपादित करें: मुझे sudoध्यान रखने की वजह से समस्याएं थीं । अंत में मैं इस परियोजना को साफ कर दिया और मैंने उस चाल का अब उपयोग नहीं किया है।


1
यह आपके वितरण (उबंटू ...) पर निर्भर करता है और यदि आप रूट के रूप में लॉग इन हैं या नहीं।
पियरे-यवेस ले डेवेट

1

हम प्ले वर्जन 2.5.6 का उपयोग कर रहे हैं।

पोर्ट बदलने के लिए, अपने प्रोजेक्ट रूट फ़ोल्डर में जाएं और हिट करें: activator "run 8008" कमांड प्रॉम्प्ट / टर्मिनल में।

और बस।


0

खिड़कियों पर, मैं इस तरह एक start.bat फ़ाइल का उपयोग करता हूं:

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

-DapplyEvolutions.default = true पुष्टि के लिए पूछे बिना विकास को स्वतः लागू करने के लिए कहता है। उत्पादन पर्यावरण पर सावधानी के साथ प्रयोग करें, अवश्य ...


0

हम एविटिलेटर से एप्लिकेशन पोर्ट नहीं बदल सकते हैं लेकिन कमांड लाइन एक्टिविटर "~ रन 8080" से बदल सकते हैं

लेकिन एक्टिविस्ट से कवि 9000 पर चलने के लिए हमें उस एप्लिकेशन को रोकना होगा जो इस पोर्ट का उपयोग कर रहा है। हम इसे खोजने के लिए इस प्रक्रिया का उपयोग कर सकते हैं और इस प्रक्रिया को समाप्त कर सकते हैं https://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

इसके बाद हम दौड़ सकते हैं और यह सफल होगा।


0

पोर्ट को विकास में निर्दिष्ट करें

डिफ़ॉल्ट रूप से, SBT पोर्ट 9000 पर एप्लिकेशन चलाता है:

sbt run

पोर्ट ऐड- डेप्थ.पोर्ट फ्लैग को निर्दिष्ट करने के लिए , उदाहरण के लिए:

sbt run -Dhttp.port=8080

-Dhttp.port ध्वज का उपयोग करके , आप अपनी विकास मशीन पर कई एप्लिकेशन डीबग कर सकते हैं। कृपया ध्यान दें, आप परीक्षण और उत्पादन वातावरण में -http.port ध्वज का भी उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.