2010-06-18 5 views
19

मैं Maven के उपयोग को समझने की कोशिश कर रहा हूं और मुझे इसकी विशेषताओं और उपयोगों का वर्णन करने वाले कई लेख मिल गए हैं। लेकिन मैं उत्पादकता दृष्टिकोण से मेवेन के वास्तविक उपयोग को समझने में सक्षम नहीं हूं।मेरे जावा प्रोजेक्ट में मेवेन का उपयोग कैसे करें और क्यों?

जो हमारी स्कूल परियोजनाओं में उपयोग किया जाता है, वह सिर्फ ग्रहण में एक नई जावा प्रोजेक्ट बना रहा था, अपना कोड लिखें, एक .war (यदि वेब-आधारित) बनाएं और कोड को टॉमकैट के वेबपैस फ़ोल्डर में पेस्ट करें और शुरू करें सर्वर!

तो,

  1. कहाँ Maven चित्र में आता है? मैंने चींटी का उपयोग किया है और मैं मानकीकृत निर्माण प्रक्रिया के चींटियों को समझता हूं। लेकिन हमें मेवेन के रूप में एक उन्नत चींटी की आवश्यकता क्यों है?

  2. किसी भी मामले में, मुझे इसका उपयोग करने की ज़रूरत है, तो मैं कहां से शुरू करूं - मूल प्रवाह, कुछ अच्छे ट्यूटोरियल?

धन्यवाद

+5

चींटी बिल्कुल एक मानक मानकीकृत निर्माण प्रक्रिया नहीं है। यह प्रक्रिया "निर्माण प्रक्रिया" के साथ जो कुछ भी आप चाहते हैं उसके साथ करें। – ColinD

उत्तर

14

Maven निर्माण, परीक्षण, और तैनाती की प्रक्रिया का प्रबंधन करने के लिए किया जाता है। यह यूनिट परीक्षण और एकीकरण परीक्षण को अलग कर सकता है ताकि आप केवल तभी उन्हें चला सकें जब बिल्डिंग समय पर कटौती कर सकें।

यह भी एक निर्भरता प्रबंधक, जिसका अर्थ है जब आपको लगता है अपनी परियोजना के सर्वर टुकड़ा apache commons-logging 1.0.4 की जरूरत है, लेकिन संबंधित pom.xml फ़ाइलों अतीत 0.7.9 कुछ भी साथ ग्राहक संघर्ष, तुम बस के लिए एक जोड़ी लाइनों को जोड़ सकते हैं है, और Maven उन सभी को संभालता है (उन निर्भरताओं के विभिन्न संस्करणों को ट्रैक करना, इंस्टॉल करना और रखना)।

मैं अपने वर्तमान कार्य से पहले एक आस्तिक नहीं था, लेकिन बड़े उद्यम अनुप्रयोगों के लिए इसका उपयोग करने के 2 साल बाद, मैं निश्चित रूप से सम्मान करता हूं कि मैवेन टेबल पर क्या लाता है। बहुत से ऑनलाइन संसाधन हैं लेकिन यदि आप इस पर अग्रणी होने जा रहे हैं और वास्तव में असहज महसूस करते हैं, तो मुझे एक पुस्तक प्राप्त करने की सलाह है - the O'Reilly one सहायक है। m2Eclipse:


वहाँ जो यह लगभग ग्रहण के साथ उपयोग करने के लिए दर्द रहित बनाता है एक ग्रहण प्लगइन है कि उल्लेख करना भूल।

आपका pom.xml जैसे XML कोड में शामिल होंगे:

<dependencies> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.0.4</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

ये (केंद्रीय Maven भंडार से डाउनलोड कर रहे हैं गूगल "Maven


उदाहरण के लिए दूसरा अद्यतन pom.xml खंड ओपी सवाल का जवाब देने नेक्सस ") या आप अपने स्वयं के अतिरिक्त भंडारों को कॉन्फ़िगर कर सकते हैं (जैसे आपकी अपनी परियोजनाओं के लिए, या यदि आप इंटरनेट से जुड़े नहीं हैं)।

+0

तो, मैवेन निर्भरता में नामित आवश्यक जार फ़ाइलों को डाउनलोड और इंस्टॉल करेगा? कैसे? – zengr

+0

m2eclipse – stacker

+0

@zengr के लिए +1, यह उन्हें स्थानीय "भंडार" (कैश सोचने) में डाउनलोड करता है और परीक्षण, संकलन आदि चलाते समय कक्षा के रेपो से जेएआर शामिल करता है। उदाहरण के लिए, एक .war को पैकेजिंग करते समय, JARs तब .war में पैक किया जाता है। –

3

Free books about Maven सोनाटाइप से डाउनलोड किया जा सकता है (जहां मेवेन के मूल डेवलपर आते हैं)।

Apache Maven वेबसाइट पर भी दस्तावेज़ देखें।

+0

लिंक टूटा हुआ प्रतीत होता है। नया लिंक शायद [इस] (http://www.sonatype.com/resources/books) जैसा दिखता है। – Pshemo

1

मैवेन तस्वीर में कहां आते हैं?I ने चींटी का उपयोग किया है और मैं एंट्स मानकीकृत बिल्ड प्रक्रिया का लाभ समझता हूं। लेकिन हमें मेवन के रूप में उन्नत चींटी की आवश्यकता क्यों है?

  • Maven "विन्यास से अधिक सम्मेलन" की शुरुआत की इस मदद करता है अगर कुछ सहयोगियों कोड से भी बड़ा चींटी scipts लिखें। प्लस निर्भरता प्रबंधन, एकमात्र परेशानी कई कलाकृतियों के साथ मोनोलिथिक परियोजनाओं को परिवर्तित करना है। कुछ अच्छा ट्यूटोरियल बुनियादी प्रवाह, -

किसी भी मामले में, मैं इतना जहां मैं कैसे शुरुआत करूं इसका इस्तेमाल करने की जरूरत है,?

उपयोगी पाया।

5

मेरे पास बिल्कुल वही धारणा थी जैसा आपने और वर्षों से मैंने मेवेन से परहेज किया था।

बात यह है कि यह आपको आवश्यक जारों को आसानी से प्राप्त करने की अनुमति देता है (निर्भरता - जार और अन्य चीजें -) कहा जाता है। तो अगली बार जब कोई और आपकी परियोजना चलाएगा तो उसे जार स्वचालित रूप से मिल जाएगा।

मुझे पता है कि समझने में थोड़ा मुश्किल है, जब तक कि आप इसका उपयोग कर मौजूदा परियोजनाओं के साथ काम न करें।

उदाहरण के लिए मैंने हाल ही में एक ओपन सोर्स प्रोजेक्ट डाउनलोड किया, जो अलग-अलग जार संस्करणों पर 10 या 12 अलग-अलग था। स्रोत कोड डाउनलोड करने और मेवेन को निष्पादित करने के बाद, उन सभी जार (और बहुत अधिक अन्य) मेरे लिए डाउनलोड किए गए थे।

मैवेन के साथ समस्या (मेरे दोस्त के रूप में मुझे बताया गया) यह है कि "हैलो वर्ल्ड" प्रोग्राम करने के लिए, यह पहले उसे नमस्कार करने के लिए दुनिया डाउनलोड करता है। : पी

+0

एक्सप साझा करने के लिए धन्यवाद :) – zengr

+0

:) आपका स्वागत है। बीटीडब्लू, मैंने उन सभी दस्तावेज, ट्यूटोरियल और सब कुछ में शामिल होने की कोशिश की, लेकिन कुछ भी समझ में नहीं आता क्योंकि यह सब कुछ समझ में आता है। – OscarRyz

0

नवीनतम नेटबीन में भी एक अच्छा अच्छा मैवेन एकीकरण है।

0

यदि आप किसी संगठन के भीतर हैं, तो मैवेन रिपोजिटरी प्रॉक्सी बनाने का प्रयास करें। Artifactory एक अच्छा विकल्प है।

4

उन सभी लोगों के लिए जो सोचते हैं कि मेवेन निर्भरता जार डाउनलोड करता है, उपयोगकर्ता रूट निर्देशिका में .m2 नामक फ़ोल्डर देखें। जैसे। मेरे लिए यह c: \ दस्तावेज़ और सेटिंग्स \ myUserName.m2 \

भी मैंने मैवेन पर थोड़ा सा शोध किया है और मैंने अनुस्मारक की तरह कुछ छोटे scribbling बना दिया है। तो इसके लायक है एक तो यहाँ पढ़ यह है ::

/* mvn उत्पन्न mvn डाउनलोड सभी आवश्यक जार mvn परीक्षण किए गए आवेदन का परीक्षण करती है स्थापित ... mvn साइट साइट बनाता है डाउनलोड करने निर्भरता

साइट को तैनात करने के लिए, हमें आपके pom.xml, में डिप्लॉयमेंट के लिए भंडार के समान वितरित करने के लिए एक स्थान घोषित करने की आवश्यकता है। ... वेबसाइट SCP: //www.mycompany.com/www/docs/project/ ...

mvn साइट तैनाती साइट तैनात

साइट की संरचना का निर्माण करने के लिए कैसे:

: site.xml फ़ाइल साइट के लेआउट का वर्णन किया जाता है, और navigation.xml Maven

में इस्तेमाल फ़ाइल की जगह एक नमूना नीचे दिया गया है

Maven http://maven.apache.org/images/apache-maven-project.png http://maven.apache.org/ http://maven.apache.org/ छवियों/Maven-small.gif

<menu name="Maven 2.0"> 
    <item name="Introduction" href="index.html"/> 
    <item name="Download" href="download.html"/> 
    <item name="Release Notes" href="release-notes.html" /> 
    <item name="General Information" href="about.html"/> 
    <item name="For Maven 1.x Users" href="maven1.html"/> 
    <item name="Road Map" href="roadmap.html" /> 
</menu> 

<menu ref="reports"/> 

... 

असल में, हमें किसी भी नए सीएसएस या ऐसी सामग्री जोड़ने के लिए वेबसाइट लेआउट बनाने के लिए हमारे एचटीएमएल को इस संरचना प्रारूप में लिंक करने की आवश्यकता है, हमें केवल उन्हें संसाधन संसाधनों में रखना है src फ़ोल्डर

तो हम हमारे परियोजना के एक युद्ध फ़ाइल बनाने और वेब सर्वर

ofour अपाचे या इस तरह के समान फ़ोल्डर की httpd फ़ोल्डर मामले में हम परियोजनाओं उत्पन्न करने के लिए की जरूरत है इसे बाहर रखना कर सकते हैं, हम जोड़ने की जरूरत हमारी pom.xml फ़ाइल में कोड की कुछ पंक्तियां और वह है: ... org.apache .maven.plugins Maven-परियोजना की जानकारी-रिपोर्टों-प्लगइन 2.0.1 ...

भी साइट वर्णनकर्ता हैं site.xml में स्थापित किया जाना

विवरण हो सकता है Maven

उनके महत्व के साथ

Maven संरचना के दस्तावेज में देखी गई:

परियोजना/ pom.xml - परिभाषित परियोजना +०१२३५१६४१०src/ मुख्य/ जावा/- आपके अंतिम आर्टिफैक्ट में जाने वाले सभी जावा कोड शामिल हैं।
विवरण के लिए मेवेन-कंपाइलर-प्लगइन देखें स्कैला/- आपके अंतिम आर्टिफैक्ट में जाने वाले सभी स्कैला कोड शामिल हैं। //// अभी तक के रूप में हमारे वर्तमान प्रोजेक्ट के लिए आवश्यक नहीं है संसाधनों के लिए मेवेन-स्कैला-प्लगइन देखें/- अंतिम आर्टिफैक्ट में क्लासपाथ पर उपलब्ध सभी स्थिर फाइलें शामिल हैं। विवरण वेबपैप के लिए मेवेन-संसाधन-प्लगइन देखें/- वेब अनुप्रयोग (जेएसपीएस, सीएसएस, इमेज इत्यादि) के लिए सभी सामग्री शामिल है।)
विवरण के लिए मेवेन-वॉर-प्लगइन देखें साइट/- एक प्रोजेक्ट वेबसाइट बनाने के लिए उपयोग की जाने वाली सभी एपीटी या एक्सडीओसी फाइलें शामिल हैं।
विवरण के लिए मेवेन-साइट-प्लगइन देखें
परीक्षण/ जावा/- परीक्षण के लिए उपयोग किए गए सभी जावा कोड शामिल हैं।
विवरण के लिए मेवेन-कंपाइलर-प्लगइन देखें स्कैला/- परीक्षण के लिए उपयोग किए जाने वाले सभी स्कैला कोड शामिल हैं।
विवरण के लिए मेवेन-स्कैला-प्लगइन देखें संसाधन/- सभी स्थिर सामग्री शामिल है जो परीक्षण के दौरान क्लासपाथ पर उपलब्ध होनी चाहिए। विवरण

के लिए Maven-संसाधन-प्लगइन देखें

mvn इस मान्य है कि सभी निर्भरता संतुष्ट हैं और कुछ भी नहीं में याद आ रही है mvn संकलन इस परियोजना mvn चेकों को सत्यापित संकलन करेंगे कि क्या पैकेज वैध है या नहीं भी मान्य करेगा परियोजना, निर्भरता xml फ़ाइल

में सम्मिलित करने के कर रहे हैं निर्भरता इंजेक्शन के उदाहरण नीचे :: org.scala-लैंग स्केला-पुस्तकालय 2.7.2-rc2 दिया जाता हैJUnit JUnit 3.8.1 परीक्षण

प्रत्येक निर्भरता कई मदों के होते हैं:

* groupId - The group of the dependency to rely on 
* artifactId - The artifact in the group to rely on 
* version - The version of the dependency to rely on 
* scope - The "scope" of the dependency. Defaults to compile (more details later) 
* packaging - The packaging for the dependency. Defaults to jar (e.g. jar, war, ear) 

आप इन चरणों का पालन करके अपने स्थैतिक पृष्ठों को एकीकृत कर सकते हैं:

* Put your static pages in the resources directory, ${basedir}/src/site/resources 
* Create your site.xml and put it in ${basedir}/src/site 
* Link to the static pages by modifying the menu section, create items and map them to the filenames of the static pages 

एमवीएन tomcat: depl ओम टोमकैट या अपाचे पर तैनात करने के लिए, आप इस कमांड के लिए जा सकते हैं

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