मावेन के साथ जावा ईई प्रोजेक्ट बनाना


13

मैं लगभग एक साल से ग्रहण के साथ जावा ईई वेब ऐप विकसित कर रहा हूं। मेरा नियोक्ता मावेन का उपयोग नहीं करता है, लेकिन जितना अधिक मैं इसके बारे में पढ़ता हूं, उतना अधिक आश्वस्त हूं कि मावेन + हडसन हमारे लिए बहुत फायदेमंद होगा। सबसे पहले, हालांकि, मुझे अपने खाली समय में उन तकनीकों के साथ सहज होना होगा, ताकि मैं एक प्रूफ-ऑफ-कॉन्सेप्ट बना सकूं।

अभी, मैं अभी भी एक Maven नौसिखिया हूँ। क्या मावेन के साथ जावा ईई वेब ऐप बनाने के लिए सर्वोत्तम प्रथाओं का एक सेट है? उदाहरण के लिए, मैं एक आधारभूत संरचना के साथ एक परियोजना बना सकता हूं और फिर सर्वलेट कंटेनर, EJB, EclipseLink, आदि के लिए POM में निर्भरताएं डालकर सभी आवश्यक JAR को जोड़ सकता हूं ... यह काम कर सकता है, लेकिन यह सबसे अच्छा नहीं हो सकता है इसे करने का तरीका। मैं इस विषय पर आपके द्वारा दिए गए किसी भी मार्गदर्शन की बहुत सराहना करूंगा।

जवाबों:


10

बाद में जब तक आर्केस्टा के साथ परेशान न करें

सभी जानकारी के लिए आपको मावेन के बारे में जानना होगा, उनकी वेबसाइट पर कुछ पुस्तकों के बारे में पढ़ना होगा । हालाँकि, आप जो हासिल करने की कोशिश कर रहे हैं, उसके लिए यह थोड़ा अधिक है।

आरंभ करने के लिए, निम्न के रूप में वेब एप्लिकेशन के लिए मानक मेवेन संरचना का अनुसरण करते हुए अपना वेब एप्लिकेशन निर्धारित करें। (आपको इसके लिए एक मेवेन आर्काइप की आवश्यकता नहीं है, यह सिर्फ मानक फ़ोल्डरों का एक गुच्छा है, आप इसे 2 मिनट में बना सकते हैं)।

  • src/main/java - अपने उत्पादन जावा कोड शामिल हैं
  • src/main/resources - आपके उत्पादन में वर्गपथ संसाधन शामिल हैं (जैसे स्प्रिंग संदर्भ)
  • src/main/webapp - (जिसमें WEB-INF / web.xml शामिल है लेकिन कोई लिबर फोल्डर नहीं है)
  • src/test/java - अपने परीक्षण जावा कोड शामिल हैं
  • src/test/resources - आपके परीक्षण संसाधन शामिल हैं (उदाहरण के लिए वेब सेवा परीक्षण आदि के लिए XML फ़ीड)

मूल प्लगइन्स

अगला कदम प्लगइन्स का एक गुच्छा चुनना है। सामान्य संदिग्ध हैं, जाहिर तौर पर स्वच्छ, संकलन और संसाधनों का समर्थन करने वाले (मावेन के हिस्से के रूप में आते हैं लेकिन आप उन्हें कॉन्फ़िगर कर सकते हैं)। फिर आपके पास अचूक यूनिट टेस्टर और WAR प्लगइन होगा। यह एक बहुत ही बुनियादी वेब एप्लिकेशन बनाने के लिए पर्याप्त है।

अधिक उन्नत प्लगइन्स

अगला कदम फाइंडबग्स और पीएमडी प्लगइन्स को पेश करना है जो आपके कोड को पूरी तरह से खत्म कर देगा और विभिन्न संभावित मुद्दों की रिपोर्ट करेगा। आप शायद क्रॉस-रेफरेंसिंग सोर्स कोड के लिए JXR रखना चाहते हैं, TODOs और REFACTOR टैग को ट्रैक करने के लिए टैगलिस्ट इत्यादि। सबसे ऊपर...

... वेब अनुप्रयोगों के लिए जेट्टी प्लगइन का उपयोग करें

आसान डिबगिंग के लिए अपनी IDE के भीतर अपनी WAR फ़ाइल को चलाने के लिए जेट्टी प्लगइन का उपयोग करें। यह तेज़ और छोटा है और इससे काम जल्दी हो जाता है। जेटी होने के नाते आपके मावेन बिल्ड के हिस्से के रूप में आपकी परियोजना को किसी भी मशीन पर बिना किसी जटिल सर्वर पैनल के कॉन्फ़िगर किए गए आईडीई की आवश्यकता के बिना परीक्षण किया जा सकता है। यह आपको अन्य डब्ल्यूएआर फाइलों पर निर्भरता की घोषणा करने की भी अनुमति देता है, जिसका अर्थ है कि आप एक एकल कमांड "मावेन क्लीन जेट्टी: रन" के साथ कई वेब अनुप्रयोगों से मिलकर एक पूर्ण कार्य वातावरण उत्पन्न कर सकते हैं। यह कहीं भी काम करता है, और आप एक परीक्षण JNDI कॉन्फ़िगरेशन भी प्रदान कर सकते हैं ताकि आपके स्प्रिंग-इन-इंजेक्ट किए गए डेटा स्रोत सभी बाहरी रूप से कॉन्फ़िगर किए जा सकें। यदि आप एक मानक प्रदर्शन HTML पृष्ठ के साथ इस जेट्टी दृष्टिकोण को जोड़ते हैं (src/test/resources/demo.html) आप एक कार्यकारी स्थानीय वातावरण प्राप्त करने की कोशिश कर डेवलपर घंटों के oodles को बचाएंगे। एक आदेश और आप कर रहे हैं। सरल।

अपनी IDE कॉन्फ़िगर करना

मावेन के साथ यह आसान है क्योंकि सभी बड़े लड़के इसका समर्थन करते हैं: एक्लिप्स, नेटबीन और निश्चित रूप से मेरे निजी पसंदीदा इंटेलीज। बस अपने IDE को pom.xml पर इंगित करें और यह आपके लिए सभी सूचीबद्ध निर्भरताओं को नीचे लाने का ध्यान रखेगा। के साथ कोई और अधिक मैकिंग WEB-INF/lib। ग्रहण में, आप आमतौर पर फ़ाइल का उपयोग करते हैं | आयात ... | मावेन परियोजना | pom.xml।

हडसन के साथ एकीकरण

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

हडसन स्नैपशॉट केवल बनाता है

हडसन स्नैपशॉट बिल्ड बनाता है, और एक मैनुअल प्रक्रिया के लिए रिलीज़ बिल्ड छोड़ देता है। उस दृष्टिकोण का उपयोग करने का मतलब होगा कि डेवलपर्स अपने कोड को एक स्नैपशॉट संशोधन (जैसे कि 1.0.0-SNAPSHOT) के तहत साझा कर सकते हैं और केवल अगर यह बिल्ड को पास करने में सक्षम है, तो इसे टीम रिपॉजिटरी में साझा किया जाएगा। आमतौर पर, हडसन "mvan क्लीन तैनाती" पर अमल करेगा, हालांकि "साइट" लक्ष्य भी आपकी प्रक्रिया का हिस्सा हो सकता है क्योंकि यह हर बिल्ड के लिए एक छोटी परियोजना वेबसाइट बनाएगा। टीम में डेवलपर्स के पास अपडेटेड स्नैपशॉट बिल्ड होगा जो मावेन निर्भरता प्रबंधन प्रक्रिया के माध्यम से स्वचालित रूप से उनकी परियोजना में शामिल है।

हडसन प्लगइन्स का एक धन प्रदान करता है जो सभी तरह के मैट्रिक्स का समर्थन कर सकता है। मेरा व्यक्तिगत पसंदीदा समय के साथ प्रति प्रोजेक्ट पासिंग टेस्ट की संख्या पर नज़र रखना है। यह प्रबंधन को दिखाने के लिए बहुत अच्छा है कि आपकी इकाई परीक्षण गणना और कवरेज कभी बढ़ती जा रही है।

सामान्य सेटअप मार्गदर्शन

अपनी रिपॉजिटरी को कम से कम निम्नलिखित संरचना में विभाजित करें:

  • टीम-विमोचन - आपकी सभी रिलीज़ प्रोडक्शन कलाकृतियाँ यहाँ जाती हैं
  • टीम-स्नैपशॉट - आपकी सभी स्नैपशॉट विकास कलाकृतियाँ यहाँ जाती हैं
  • तृतीय-पक्ष-विमोचन - आपके सभी सहायक तृतीय-पक्ष लाइब्रेरी यहाँ जाते हैं (जैसे स्प्रिंग, हाइबरनेट आदि)

डेवलपर उपयोगकर्ता खाते टीम रिपॉजिटरी में लिखने में सक्षम नहीं होने चाहिए, या तो स्नैपशॉट या रिलीज़। यह एक डेवलपर को हडसन को बायपास करने में सक्षम करेगा यदि वे जल्दी में हैं और जल्दी से आदर्श बन जाएंगे।

सुनिश्चित करें कि आप हमेशा अपने सभी तृतीय पक्षों के लिए स्रोत, javadocs और SHA हस्ताक्षर डाउनलोड करते हैं। जारवाना उन सभी वर्गों को खोजने के लिए एक उत्कृष्ट रिपॉजिटरी एक्सप्लोरर है।

नेक्सस या आर्टिफैक्ट जैसे रिपॉजिटरी मैनेजर को स्थापित करने पर विचार करें ताकि आपके बढ़ते हुए रिपॉजिटरी पर बेहतर नियंत्रण हो सके।


2
सोनार भी बहुत बढ़िया है और मावेन / हडसन के साथ अच्छी तरह से फिट बैठता है
केविन

1
पूर्ण रूप से। अभी, अगर मैं एक टीम में मावेन परियोजना पर काम कर रहा हूं, तो मैं स्थानीय फाइंडबग्स / पीएमडी से हत्यारे की समस्याओं को तेजी से पकड़ने की उम्मीद करूंगा, फिर जेनकींस के बाद सोनार की नौकरी नेक्सस या आर्टिफ़ैक्ट्री में विरूपण साक्ष्य तैनाती के साथ होगी। यह कलाकृतियों का आसान स्थान प्रदान करता है, और परियोजना पारिस्थितिकी तंत्र में उन कलाकृतियों के लिए प्रभाव विश्लेषण ("जहां उपयोग किया जाता है") प्रदान करता है। Git, JIRA और Fisheye के साथ मिलकर आपको एक शानदार विकास प्रक्रिया उपलब्ध हुई है।
गैरी रोवे

1
गैरी, पीडीएफ लिंक की समय सीमा समाप्त हो गई है
user1787812

1

Maven के बहुत सारे प्रदान करता है आद्यरूप

mvn archetype:generate

उपलब्ध सूची को प्रिंट करेगा।

J2EE आर्चेटेप्स के साथ सादे जावा आर्चटेप्स के बीच मुख्य अंतर यह है कि जेएसपी और छवियों के लिए निर्देशिका उत्पन्न की जाएगी। यदि आप एक नया J2EE प्रोजेक्ट शुरू कर रहे हैं, तो शुरू से ही उनमें से एक का उपयोग करने पर विचार करें।

जैसे-जैसे आपकी परियोजना बढ़ती है आप अधिक निर्भरता जोड़ सकते हैं। व्यक्तिगत रूप से मैं निर्भरता के न्यूनतम संग्रह (जैसे J2EE बेसिक आर्किटाइप) के साथ शुरुआत करना पसंद करता हूं और फिर धीरे-धीरे मुझे जो कुछ भी चाहिए उसे जोड़ते हैं।


0

मैंने इसे एक मूल रूप से शुरू करके और सभी बिट्स में जोड़कर किया है, और मुझे पूरा यकीन है कि यह बहुत अच्छा तरीका नहीं है। लेकिन मुझे लगता है कि यह बहुत अजीब है; जब तक आप पहले से ही "रहस्यों में गहराई से निपुण" हैं, तब तक चयन करना एक अच्छा आदर्श है मुश्किल है। मेरे स्वाद के लिए यह सब थोड़ा बहुत जादूगर विद्या (समझदार खोज योग्य तकनीकी जानकारी के विपरीत) की तरह है ...


और मुझे लगता है कि यह एक अच्छा सवाल है। काश मेरे पास एक बेहतर जवाब होता।
डोनाल्ड फेलो

इसकी बहुत तारीफ हो रही है, सर।
माइकल

0

मावेन आर्केचेस नामक टेम्प्लेट से प्रोजेक्ट बनाने का एक तरीका प्रदान करता है । आप mvn archetype:generateएक इंटरैक्टिव रूप से लेने के लिए कमांड का उपयोग करते हैं । आप सीधे एक भी निर्दिष्ट कर सकते हैं।

mvn archetype:generate \
    -DarchetypeGroupId=org.apache.maven.archetypes \
    -DarchetypeArtifactId=maven-archetype-j2ee-simple \
    -DarchetypeVersion=1.0

सभी एक लाइन पर।


0

मैं पिछले तीन महीनों से मावेन और हडसन का उपयोग कर रहा हूं। यह सभी यूनिट परीक्षणों को निष्पादित करके, परीक्षण रिपोर्ट तैयार करके, मुझे कोड आधार के स्वास्थ्य की जांच करने में मदद करता है। आप यह कोशिश कर सकते हैं।
आप स्प्रिंग रो भी ट्राई कर सकते हैं। यह स्प्रिंग आधारित J2EE प्रोजेक्ट बनाने के लिए एक RAD उपकरण है।

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