मैं एक काफी सरल वेब अनुप्रयोग को विकसित करने और रिलीज़ करने का सबसे अच्छा तरीका जानने की कोशिश कर रहा हूं, और मैं कई समस्याओं में भाग रहा हूं। मैं अपने द्वारा किए गए निर्णयों की रूपरेखा तैयार करूंगा, क्योंकि कहीं मैं रेलों से स्पष्ट रूप से चला गया हूं .. किसी भी मदद के लिए बहुत आभारी हूं!जावा वेब एप्लिकेशन सर्वोत्तम प्रथाओं
मेरे पास जो लगता है वह एक साधारण सरल वेब एप्लिकेशन है। इसमें कुछ जेएसपीएस शामिल हैं जो कुछ जावा बीन्स, और सामान्य स्थैतिक एचटीएमएल, जेएस, सीएसएस और छवियों का संदर्भ देते हैं।
निर्णय 1) मैं एक स्पष्ट और साफ रिलीज प्रक्रिया चाहता था, जैसे कि मैं अपनी स्थानीय मशीन पर विकसित कर सकता हूं और फिर उत्पादन मशीन पर विश्वसनीय रूप से रिलीज़ कर सकता हूं। इसलिए मैंने अलग-अलग बिट्स और टुकड़ों को कम करने के लिए एप्लिकेशन को एक फ़ाइल फ़ाइल (सभी स्थिर संसाधनों सहित) में पैकेज करने का निर्णय लिया, जिसे मुझे रिलीज़ करने की आवश्यकता होगी। अब तक सब ठीक है?
निर्णय 2) मैं अपनी स्थानीय मशीन पर चीज़ों को उत्पादन वातावरण के लिए जितना संभव हो उतना होना चाहता था। तो मेरे एचटीएमएल में, उदाहरण के लिए, मेरे पास http://static.foo.com/file जैसी स्थिर फ़ाइल का संदर्भ हो सकता है। इस कोड को देव और प्रोड पर निर्बाध रूप से काम करने के लिए, मैंने स्थानीय/स्थानीय रूप से विकसित होने पर static.foo.com को अपने/etc/hosts में डालने का निर्णय लिया, ताकि सभी यूआरएल कुछ भी बदले बिना सही तरीके से काम कर सकें।
निर्णय 3) मैंने ग्रहण और मेवेन का उपयोग करने का फैसला किया ताकि मुझे मेरी परियोजना का प्रशासन और निर्माण करने के लिए एक सर्वोत्तम अभ्यास वातावरण प्रदान किया जा सके।
तो मैं सिवाय इसके कि एक अच्छा तंग अब की स्थापना की है,:
हर बार जब मैं विकास में कुछ भी बदलने की, एक HTML फ़ाइल में एक पंक्ति की तरह चाहते हैं, मैं पूरी परियोजना के पुनर्निर्माण और उसके बाद के लिए इंतजार करना पड़ता है मैं देख सकता हूं कि क्या मैं चाहता हूं कि युद्ध को लोड करने के लिए टोमकैट। तो मेरे प्रश्न हैं:
1) क्या ग्रहण और टोमकैट को जोड़ने का कोई तरीका है ताकि मुझे हर बार युद्ध का पुनर्निर्माण करने की आवश्यकता न हो? यानी टॉमकैट स्थिर फाइलों को पूरा करने के लिए सीधे मेरे वास्तविक वर्कस्पेस पर देख रहा है?
2) मुझे लगता है कि मैं उत्पादन यूआरएल को प्रतिबिंबित करने के लिए/etc/hosts का उपयोग कर चीजों को कठिन बना रहा हूं - क्या एक बेहतर तरीका है जिसमें यूआरएल पर मैन्युअल रूप से परिवर्तन शामिल नहीं है (सापेक्ष यूआरएल बिल्कुल ठीक है, लेकिन जहां आपके पास कई सबडोमेन हैं, स्थिर फ़ाइलों के लिए एक और गतिशील के लिए एक कहें, आपको निश्चित पथ लिखना होगा, निश्चित रूप से?)
3) क्या यह वास्तव में सबसे अच्छा अभ्यास है ?? लोग चीजों को कैसे सेट करते हैं ताकि वे एक हाथ पर एक स्वचालित, सर्वव्यापी निर्माण प्रक्रिया के लिए आवश्यकता को संतुलित कर सकें, और गति और लचीलापन जावास्क्रिप्ट और एचटीएमएल और सीएसएस को जल्दी से विकसित करने में सक्षम हो, जैसे ही कोई एक बस इंगित करता है निर्देशिका में apache और विकसित विकसित? लोगों को क्या काम मिलते हैं?
बहुत धन्यवाद!
संपादित करें: आपके सभी महान प्रतिक्रियाओं के लिए धन्यवाद! अगर मैं उन्हें ठीक से चिह्नित कर सकता हूं, तो मैं .. यह वास्तव में मेरी मदद करता है। जो मैं सुन रहा हूं वह यह है कि विकास में वेबपैप की संरचना को संरक्षित करना और इसे यथासंभव उत्पादन के करीब एक पर्यावरण के रूप में चलाने के लिए सबसे अच्छा अभ्यास है। ऐसा लगता है कि लोगों के बीच मतभेद इस बात की सीमा है कि लोग सर्वलेट कंटेनर में संसाधनों को तैनात करने के लिए तैयार हैं, थोड़ी अतिरिक्त गति या सुविधा के लिए निर्माण प्रक्रिया को बाधित करते हैं। यह समझ आता है। एक बार फिर धन्यवाद।
धन्यवाद व्हेली।तो मैं स्पष्ट हूं - क्या आप यह पुष्टि कर रहे हैं कि अगर मैं चाहता हूं कि, जावास्क्रिप्ट की एक पंक्ति में त्वरित चेतावनी डालें, या किसी HTML फ़ाइल में कुछ पाठ में टाइपो को सही करें, तो मुझे युद्ध की प्रतीक्षा करनी होगी पुनर्निर्माण और फिर मेरे विकास सर्वलेट कंटेनर में तैनात (यहां तक कि स्वचालित रूप से), और केवल तभी मैं अपने परिवर्तन का परिणाम देख सकता हूं? यदि ऐसा है, तो प्रोजेक्ट फ़ाइलों पर कुछ सही दिशा देने की दक्षता की तुलना में यह बहुत ठंडा लगता है। क्या मैं सही ढंग से समझ गया हूं, या क्या मुझे कुछ याद आ रहा है? – Jeremy
यह वही है जो मैं सुझाव दे रहा हूं। यदि आपके उत्पादन परिनियोजन में .war बूंद शामिल हैं, तो यही है कि आपकी विकास परिनियोजन भी दिखना चाहिए। जावा वेबपैप्स को युद्ध के रूप में बंडल और तैनात किया जाना है - मुझे लगता है कि जब आप उस सम्मेलन के आसपास काम करने की कोशिश नहीं करते हैं तो जीवन हमेशा आसान होता है। – whaley
ग्रहण के वेबटोल/ईई संस्करण का उपयोग करके आप अपनी परियोजना को स्थानीय टॉमकैट (या अन्य कंटेनर) स्थापना के साथ "लिंक" कर सकते हैं, ताकि आप युद्ध पीढ़ी/तैनाती के इंतजार किए बिना छोटे बदलावों का पूर्वावलोकन कर सकें। – agnul