2010-06-28 9 views
6

~run कमांड एसबीटी का उपयोग करते समय मेरे लिए एक निष्पादन योग्य लक्ष्य फिर से चलाएगा जब भी कोई स्रोत फ़ाइल बदलती है। यह अच्छा है, लेकिन यदि लक्ष्य एक लंबे समय से चलने वाली सर्वर प्रक्रिया है, तो बच्चे को समाप्त होने तक एसबीटी निलंबित कर दिया जाता है, इसलिए स्रोत परिवर्तनों का कोई प्रभाव नहीं पड़ता है।कोड परिवर्तन पर लंबे समय से चलने वाली सर्वर प्रक्रिया को पुनरारंभ करने के लिए एसबीटी कैसे स्थापित करें?

मैं एसबीटी मॉनिटर रखना चाहता हूं और लक्ष्य कोड चलने के दौरान भी अपने स्रोतों को दोबारा जोड़ना चाहता हूं, और सफल निर्माण पर प्रक्रिया को पुनरारंभ करना चाहता हूं। क्या किसी ने इसे स्थापित करने की कोशिश की है?

उत्तर

8

(पोस्टमार्टम उत्तर के लिए क्षमा करें)

https://github.com/spray/sbt-revolver सिर्फ इस समस्या को हल करने के लिए बनाया गया है।

+0

यह वास्तव में स्वीकृत उत्तर होना चाहिए! –

5

निर्मित "~" कार्यक्षमता के माध्यम से यह संभव नहीं है। समस्या यह है कि "~" -prefixed कार्य को पूरा करना होगा। यदि यह कुछ बंदरगाहों पर एक सर्वर एप्लिकेशन सुन रहा है, तो आपने इसे पहले रोक दिया है।

शायद आप अपना खुद का कार्य बना सकते हैं या run कार्य को चालू करने के लिए चल रहे एप्लिकेशन को मारने/छोड़ने के लिए संशोधित कर सकते हैं (उदाहरण के लिए श्रवण बंदरगाह पर एक जादू निकास-स्ट्रिंग भेजना?)। अधिक जानकारी के लिए देखें:

http://code.google.com/p/simple-build-tool/wiki/CustomActions

+0

धन्यवाद। मैं इसे कुछ और दिनों तक खोलने जा रहा हूं, लेकिन शायद यह एक कस्टम एक्शन के रूप में किया जाएगा, अगर बिलकुल भी। – Crosbie

1

JRebel गतिशील वर्ग पुन: लोड के साथ तुम्हारी मदद कर सकता है, तो वह यह है कि क्या आप के बाद कर रहे हैं। नि: शुल्क स्काला लाइसेंस उपलब्ध hereSBT site पर उपयोग की जानकारी।

+0

ऑन-द-फ्लाई रीलोडिंग ज्यादातर मामलों में भी एक तेज समाधान हो सकता है, हालांकि शायद विश्वसनीय नहीं है। चूंकि जेरेबेल एक मालिकाना लाइसेंस है, मैं पहले कस्टम एक्शन रूट को पर्स कर दूंगा। धन्यवाद! – Crosbie

संबंधित मुद्दे

 संबंधित मुद्दे