मावेन कलाकृति क्या है?


342

एक कलाकृति क्या है और मावेन को इसकी आवश्यकता क्यों है?


3
यहाँ मावेन अवधारणाओं के बारे में अधिक जानकारी: tshikatshikaaa.blogspot.nl/2012/05/…
Jérôme Verstrynge

1
btw तुम एक की परिभाषा के लिए सरकारी अपाचे Maven शब्दकोष देख सकते हैं विरूपण साक्ष्य
informatik01

1
इनमें से कोई भी उत्तर पूर्ण नहीं है। आप इसे सिर्फ मैवेन रिपॉजिटरी ब्राउज़ करके देख सकते हैं । एक विरूपण साक्ष्य स्पष्ट रूप से एक निर्देशिका है जो कुछ बाधाओं को संतुष्ट करता है, उदाहरण के लिए इसमें एक फ़ाइल नामक फ़ाइल maven-metadata.xmlऔर एक फ़ाइल होनी चाहिए <artifactId>-<version>.pom। उन दोनों फ़ाइलों में कुछ अनिर्दिष्ट स्कीमा और शब्दार्थ हैं।
जेम्फिशर

जवाबों:


303

एक विरूपण साक्ष्य एक फ़ाइल है, आमतौर पर एक JAR, जो मावेन रिपॉजिटरी में तैनात हो जाती है।

एक मावेन बिल्ड एक या एक से अधिक कलाकृतियों का उत्पादन करता है, जैसे संकलित जार और एक "स्रोत" जार।

प्रत्येक कलाकृतियों में एक समूह ID (आमतौर पर उलटा डोमेन नाम, जैसे com.example.foo), एक विरूपण साक्ष्य आईडी (सिर्फ एक नाम), और एक संस्करण स्ट्रिंग होता है। तीनों ने एक साथ कलाकृतियों की विशिष्ट पहचान की।

एक परियोजना की निर्भरता कलाकृतियों के रूप में निर्दिष्ट की जाती है।


5
क्या एक कलाकृति मूल रूप से एक JAR फ़ाइल है? तो, joda time jar file को joda विरूपण साक्ष्य कहा जा सकता है, hibernate jar को hibernate विरूपण साक्ष्य आदि कहा जा सकता है?
दाविद ब्लेन

47
एक कलाकारी वास्तव में क्या है, इसके बारे में सोचो। मिस्रवासियों ने मिट्टी के बर्तनों जैसी अद्भुत कलाकृतियाँ बनाईं। लेकिन, यदि आप अपने हाथ में एक मिस्र का कटोरा पकड़े हुए थे, तो आप इसे "विरूपण साक्ष्य" के रूप में संदर्भित नहीं करेंगे जब तक कि आप इस तथ्य पर चर्चा नहीं कर रहे थे कि यह एक विरूपण साक्ष्य (तथ्य) है। आप इसे एक कटोरे के रूप में देखें। उन्होंने कटोरे से बाहर खाया। वे कलाकृतियों से बाहर नहीं खाते थे।
cbmeeks

3
मुझे लगता है कि @cbmeeks पर जो मिल रहा है, वह यह है कि "विरूपण साक्ष्य" एक "चीज़" का नाम नहीं है, यह निर्माण प्रक्रिया में एक भूमिका है। कुछ भी एक "विरूपण साक्ष्य" के रूप में वर्गीकृत किया जा सकता है अगर मावेन इसे पैदा करता है और इसे पहचानने के लिए विशेष मावेन निर्देशांक दिया जाता है।
गैरेट विल्सन

अगर मुझे "com.example: mylibrary: 1.0.0" (groupId: विरूपण साक्ष्य: संस्करण) कहा जाता है, तो इसमें एक जार, एक पोम और एक स्रोत जार होता है, जो निम्न में से एक आर्टवर्क है: 1. प्रत्येक फ़ाइल (पोम, जार, सोर्स जार) एक अलग कलाकृति है; 2. एक ही साझा करने वाली फ़ाइलों का समूह (groupId: विरूपण साक्ष्य: संस्करण) एक ही कलाकृति बनाते हैं; 3. कुछ और?
लॉरेंस गोंसाल्वेस

आप यह नहीं समझाते हैं कि समूह और कलाकृतियों को कक्षा का नाम कैसे दिया जाता है। डाउनवोट
फिलिप रेगो

114

सामान्य सॉफ्टवेयर शब्दों में, एक " विरूपण साक्ष्य " सॉफ्टवेयर विकास प्रक्रिया द्वारा उत्पादित कुछ है, चाहे वह सॉफ्टवेयर से संबंधित दस्तावेज हो या एक निष्पादन योग्य फ़ाइल।

Maven शब्दावली में, विरूपण साक्ष्य Maven निर्माण के परिणामस्वरूप उत्पादन, आम तौर पर एक है jarया warया अन्य निष्पादन योग्य फ़ाइल। मावेन में कलाकृतियों की पहचान ग्रुपआईडी, आर्टिफ़िशियड और वर्जन की एक समन्वय प्रणाली द्वारा की जाती है। Maven का उपयोग करता है groupId, artifactIdऔर versionनिर्भरता (आमतौर पर अन्य जार फ़ाइलें) का निर्माण करने के लिए आवश्यक की पहचान करने और अपने कोड को चलाने के लिए।


मेरी पुस्तक कहती है "इस ऑनलाइन एप्लिकेशन की मुख्य कलाकृति उपयोगकर्ता नाम के एक जावा वर्ग होगी, जो कि" ... क्या यह वही है जो आपके द्वारा बताई गई कलाकृतियों के समान है?
दाविद ब्लेन

@davidblaine - बिल्कुल नहीं, यह वाक्य शब्द को अधिक सामान्य ज्ञान का उपयोग करता है।
केन लियू

27

मुझे पता है कि यह एक प्राचीन सूत्र है लेकिन मैं कुछ बारीकियों को जोड़ना चाहता था।

मावेन कलाकृतियाँ हैं, भंडार प्रबंधक कलाकृतियाँ हैं और फिर मावेन Artifactएस हैं।

एक मावेन विरूपण साक्ष्य के रूप में अन्य टिप्पणीकारों / उत्तरदाताओं का कहना है: यह एक ऐसी चीज है जो मावेन परियोजना के निर्माण से बाहर है। यह एक .jarफ़ाइल, या एक .warफ़ाइल, या एक .zipफ़ाइल, या एक .dll, या आपके पास क्या हो सकता है।

एक रिपॉजिटरी प्रबंधक विरूपण साक्ष्य एक ऐसी चीज़ है, जो एक रिपॉजिटरी प्रबंधक द्वारा प्रबंधित की जाती है। एक रिपॉजिटरी प्रबंधक मूल रूप से सॉफ्टवेयर निष्पादन योग्य और पुस्तकालयों के लिए एक उच्च प्रदर्शन वाली नामकरण सेवा है। एक रिपॉजिटरी मैनेजर को इसकी परवाह नहीं है कि इसकी कलाकृतियाँ कहाँ से आती हैं (हो सकता है कि वे मावेन बिल्ड से आए हों, या एक स्थानीय फ़ाइल, या एक एंट बिल्ड, या बाय-हैंड संकलन ...)।

एक मावेन Artifactएक जावा वर्ग है जो "नाम" के प्रकार का प्रतिनिधित्व करता है जो एक रिपॉजिटरी प्रबंधक द्वारा एक रिपॉजिटरी प्रबंधक विरूपण साक्ष्य में मिल जाता है। जब इस अर्थ में प्रयोग किया, एक Artifactबस एक महिमा के रूप में इस तरह के योग से बना नाम है groupId, artifactId, version, scope, classifierऔर इतने पर।

यह सब एक साथ रखने के लिए:

  • आपकी मावेन परियोजना संभवतः Artifactअपने <dependency>तत्वों के माध्यम से कई एस पर निर्भर करती है ।
  • मावेन एक रिपॉजिटरी मैनेजर के साथ बातचीत करता है, जो रिपॉजिटरी मैनेजर को Artifactनिर्देश देता है कि वह रिपॉजिटरी मैनेजर को निर्देश देकर इसे कुछ रिपॉजिटरी मैनेजर की कलाकृतियों के लिए भेजे जो आंतरिक Artifactएस के अनुरूप हो ।
  • अंत में, संकल्प के बाद, मावेन आपकी परियोजना का निर्माण करता है और मावेन कलाकृतियों का उत्पादन करता है। आप एक "रिपॉजिटरी मैनेजर विरूपण साक्ष्य" द्वारा "इसे चालू करना" चुन सकते हैं, बदले में, जो भी टूल आपको पसंद है, उसे पर्याप्त समन्वयकारी जानकारी के साथ रिपॉजिटरी मैनेजर को भेजना है कि अन्य लोग इसे तब पा सकते हैं जब वे रिपॉजिटरी प्रबंधक से इसके लिए पूछते हैं।

उम्मीद है की वो मदद करदे।


पुराने थ्रेड पर नई जानकारी के लिए +1 धन्यवाद! फिक्स टाइपो "रिपॉजिटरी" हालांकि कई बार पू को सही शब्द हाहा हो सकता है ... हर कोई कह रहा है कि "विरूपण साक्ष्य" वास्तविक जार है, अपने उत्तर को अपडेट करने के लिए सहायक हो सकता है कि उदाहरण के लिए, उपयोग करते समय mvn install, लोग हैं यह पता लगाने की कोशिश कर रहा है कि उस प्रविष्टि में क्या रखा जाए। तो जार का पूरा नाम क्या है -DartifactId=YOUR_ARTIFACT_ID, यह सही है? पूर्ण जार फ़ाइल नाम संस्करण और .jar के साथ? ऐसा लगता है कि आप क्या कह रहे हैं, लेकिन वास्तव में स्पष्ट होने में कुछ मदद करेगा। अन्य उत्तर इस के करीब हैं, लेकिन मैंने तुम्हारा सबसे अच्छा सोचा।
जिमलॉह

23

मावेन परियोजनाओं में अपने निर्माण का आयोजन करता है।

एक artifactMaven में एक Maven परियोजना द्वारा उत्पन्न एक संसाधन है। प्रत्येक मावेन प्रोजेक्ट में ठीक एक artifactजैसा हो सकता है jar, war, ear, आदि
। प्रोजेक्ट की कॉन्फ़िगरेशन फ़ाइल यह "pom.xml"बताती है कि आर्टवर्क का निर्माण कैसे किया जाता है, यूनिट टेस्ट कैसे चलाए जाते हैं, आदि। आमतौर पर मावेन के साथ एक सॉफ्टवेयर प्रोजेक्ट बिल्ड में कई मावेन-प्रोजेक्ट होते हैं जो कलाकृतियों का निर्माण करते हैं (उदाहरण के लिए) ) जो उत्पाद का गठन करते हैं।
उदाहरण के लिए

Root-Project   // produces no artifact, simply triggers the build of the other projects
  App-Project  // The application, that uses the libraries
  Lib1-Project // A project that creates a library (jar)
  Lib2-Project // Another library
  Doc-Project  // A project that generates the user documentation from some resources

मावेन कलाकृतियां जावा संसाधनों तक सीमित नहीं हैं। आपको जो भी संसाधन की आवश्यकता है, आप उत्पन्न कर सकते हैं। जैसे प्रलेखन, परियोजना-स्थल, ज़िप-अभिलेखागार, मूल-पुस्तकालय, आदि।

प्रत्येक मावेन परियोजना की एक विशिष्ट पहचानकर्ता है [groupId, artifactId, version]। जब एक मावेन परियोजना को किसी अन्य परियोजना के संसाधनों की आवश्यकता होती है तो एक निर्भरता को कॉन्फ़िगर किया जाता है जो pom.xmlउपर्युक्त पहचानकर्ता का उपयोग कर रहा है। एक निर्माण शुरू होने पर मावेन स्वचालित रूप से निर्भरता को हल करता है। आवश्यक परियोजनाओं की कलाकृतियों को तब स्थानीय से लोड repositoryकिया जाता है, जो आपके उपयोगकर्ता के घर में, या आपके द्वारा निर्दिष्ट अन्य (दूरस्थ) रिपोजिटरी से एक सरल निर्देशिका है pom.xml


19

Q. मावेन में कलाकारी क्या है?
ANS: ARTIFACT एक JAR, (WAR या EAR) है, लेकिन यह कुछ और भी हो सकता है। प्रत्येक कलाकृति है,

  • एक समूह आईडी (जैसे com.your.package),
  • एक विरूपण साक्ष्य आईडी (सिर्फ एक नाम), और
  • एक संस्करण स्ट्रिंग।
    तीनों ने एक साथ कलाकृतियों की विशिष्ट पहचान की।

Q. मावेन को उनकी आवश्यकता क्यों है?
उत्तर: मावेन का उपयोग उन्हें हमारे अनुप्रयोगों के लिए उपलब्ध करने के लिए किया जाता है।


अच्छा जवाब, जैसा कि मैंने अन्य उत्तर पर टिप्पणी की है , यह स्पष्ट कर दें कि -DartifactId=YOUR_ARTIFACT_IDजब हम
mvan

@JimLohse धन्यवाद, कृपया "एडिट" शीर्षक के साथ जोड़ने के लिए स्वतंत्र महसूस करें :)
VdeX

9

एक विरूपण साक्ष्य एक जार या ऐसा कुछ है जिसे आप भंडार में संग्रहीत करते हैं। मावेन उन्हें बाहर निकालता है और आपका कोड बनाता है।


8

मावेन करने के लिए, निर्माण प्रक्रिया को कलाकृतियों के एक सेट के रूप में व्यवस्थित किया जाता है। कलाकृतियों में शामिल हैं:

  1. प्लगइन्स जो मावेन को ही बनाते हैं।
  2. निर्भरताएँ कि आपका कोड निर्भर करता है।
  3. जो कुछ भी आपका निर्माण करता है, वह बदले में किसी और चीज का सेवन कर सकता है।

कलाकृतियाँ रिपॉजिटरी में रहती हैं।


4

आमतौर पर हम Maven Terminology से Group Id, Artifact Id और Snapshot Version के बारे में बात करते हैं

समूह क्रमांक: परियोजना के समूह की पहचान Art Id Id: परियोजना की पहचान स्नैपशॉट संस्करण: परियोजना द्वारा प्रयुक्त संस्करण।

आर्टिफ़िकेशन और कुछ नहीं बल्कि कुछ परिणामी फ़ाइल जैसे जार, वार, इयर ... है।

बस कहते हैं कि कलाकृतियां पैकेज के अलावा और कुछ नहीं हैं।

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