दो महत्वपूर्ण बिंदुओं
पर एक देर से स्पष्टीकरण कहाँ जगह plugin
एक plugin
वास्तव में build
/plugins
अनुभाग के भीतर अधिकांश मामलों में शामिल किया जाना चाहिए, लेकिन वहाँ है एक महत्वपूर्ण अंतर इसे plugins
के भीतर pluginManagement
/plugins
के अंदर रखने के विरुद्ध इसे रखने के बीच।
यह गलतफहमी अक्सर Maven में एक गैर लागू प्लगइन का कारण है या एक कठिन समस्या निवारण: यदि वे एक execution
या निर्दिष्ट build
/plugins
तहत
- प्लगइन्स, सीधे डिफ़ॉल्ट Maven निर्माण का हिस्सा हैं अगर वे डिफ़ॉल्ट निर्माण के लिए कुछ कॉन्फ़िगर (देखें नीचे) के तहत
build
/pluginManagement
/plugins
डिफ़ॉल्ट Maven निर्माण की नहीं necessarely हिस्सा हैं
प्लगइन्स, वह यह है कि मैं एक प्रबंधन है, यह maven के लिए एक संकेत है: यह आप इस प्लगइन का उपयोग करने के लिए होता है, तो कृपया इस प्रबंधन में संस्करण, विन्यास, निष्पादन, जो मैं निर्दिष्ट करता हूं, का उपयोग करें।
लेकिन का उपयोग करने के लिए क्या होता है? मतलब: यदि एक ही प्लगइन build
/plugins
अनुभाग में मौजूद है, तो इस प्रबंधन को लागू करें (और केवल तभी प्रभावी होगा); या यदि प्लगइन को मावेन द्वारा डिफ़ॉल्ट रूप से बुलाया जाता है, तो इसे भी लागू करें।
लेकिन प्लगइन डिफ़ॉल्ट रूप से कैसे लागू किया जाता है? यह मैवेन के पीछे मुख्य दर्शन का हिस्सा है: कॉन्फ़िगरेशन पर सम्मेलन। सम्मेलन द्वारा, जब आप एक निश्चित packaging
(डिफ़ॉल्ट jar
निर्दिष्ट करते हैं, लेकिन उदाहरण के लिए यह war
हो सकता है), तो आप कुछ प्लगइन्स का आह्वान करना चाहते हैं। jar
बनाने के लिए, by defaultmaven-jar-plugin
का आह्वान करें; war
, by default बनाने के लिए maven-war-plugin
और अन्य पर भी शामिल करें। इसलिए, यदि आप प्लगइन के लिए build
/pluginManagement
/plugin
में प्लगइन कॉन्फ़िगरेशन निर्दिष्ट करते हैं जिसमें मेवेन बिल्ड के लिए डिफ़ॉल्ट बाध्यकारी है, तो इसका भी उपयोग किया जाएगा।
आदेश pom.xml
फ़ाइल के भीतर वर्गों के आदेश के संबंध में, एक और स्पष्टीकरण की की जरूरत है: यह वास्तव में अधिकांश मामलों में अप्रासंगिक है, wihtin build
/plugins
plugin
तत्व की लेकिन आदेश खंड महत्वपूर्ण हो सकता है। चूंकि मेवेन 3.0.3 (MNG-2258
), उसी मेवेन चरण से जुड़े विभिन्न प्लगइन निष्पादन pom.xml
फ़ाइल में घोषणा के उनके आदेश में लागू किए जाएंगे। इस मामले में आदेश महत्वपूर्ण है, क्योंकि यह निर्माण के व्यवहार को प्रभावित कर सकता है।
इसके अतिरिक्त, dependency
घोषणाओं के आदेश भी Dependency Mediation की ओर आपके निर्माण को प्रभावित कर सकते हैं, यानी, पहली घोषित निर्भरता एक पारस्परिक निर्भरता के खिलाफ संघर्ष के मामले में जीत जाती है। तो, एक बार फिर, कुछ मामलों में ऑर्डरिंग महत्वपूर्ण है।
<project>
<modelVersion/>
<parent/>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<properties/>
<dependencyManagement/>
<dependencies/>
<build/>
<reporting/>
<profiles/>
</project>
:,
इतना ही नहीं बल्कि हालांकि आदेश pom.xml
फ़ाइल के अन्य वर्गों के लिए महत्वपूर्ण नहीं है, अच्छी आदत एक सरलीकृत संस्करण के रूप में, घोषणा के इस आदेश का पालन अधिकारी Maven recommendations पालन करने के लिए है और,
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:2.5.0:sort \
-Dsort.keepBlankLines -Dsort.predefinedSortOrder=recommended_2008_06
:
sortpom-maven-plugin
भी स्वतः ही इस मानक आदेश लागू करने के लिए, बस चिंतित
pom.xml
फ़ाइल पर निम्न लागू किया जा सकता है
आगे पढ़ने के लिए:
स्रोत
2016-06-15 11:32:17
आपको बहुत टैंक। –