2017-04-07 11 views
5

मैवेन में एक्सटेंशन और प्लगइन के बीच कार्यात्मक अंतर क्या है?मेवेन में, एक्सटेंशन और प्लगइन के बीच क्या अंतर है

नीचे दिए गए उदाहरण here से लिया गया है जो एक संक्षिप्त सारांश प्रदान करता है लेकिन अंतर को अच्छी तरह से समझाता नहीं है।

एक्सटेंशन उदाहरण:

<project> 
    ... 
    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ftp</artifactId> 
     <version>2.10</version> 
     </extension> 
    </extensions> 
    </build> 
    ... 
</project> 

प्लग उदाहरण:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.felix</groupId> 
     <artifactId>maven-bundle-plugin</artifactId> 
     <extensions>true</extensions> 
     <configuration> 
      ... 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

उत्तर

4

From the docs:

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

उपरोक्त आमतौर पर कॉल बिल्ड एक्सटेंशन कहते हैं जो अक्सर उपयोग के लिए org.apache.maven.AbstractMavenLifecycleParticipant का उपयोग करते हैं। <packaging>eclipse-plugin</packaging>:

एक प्लगइन जो

<extension>true</extension> 

साथ परिभाषित किया गया है आम तौर पर यह खुद के जीवन चक्र या packaging types Maven गठरी-प्लगइन जो यह संभव एक <packaging>bundle</packaging> या Maven टाइको पैकेजिंग प्रकार परिभाषित करता है परिभाषित करने के लिए बनाता है की तरह है परिभाषित करेगा।

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