2010-09-23 13 views
71

मैंने सोचा कि मैं एक अनुभवी मेवेन उपयोगकर्ता था, लेकिन मुझे यह कैसे करना है पर एक मानसिक ब्लॉक है!एक एकल मेवेन प्लगइन निष्पादन चलाएं?

मैं प्लगइन निष्पादन के माध्यम से डेटाबेस में स्कीमा को ड्रॉप, बनाने और स्थापित करने के लिए मेवेन एसक्यूएल प्लगइन का उपयोग करने में सक्षम हूं, मैंने pre-integration-test चरण को परिभाषित और बाध्य किया है।

हालांकि, अब जब भी मैं कमांड लाइन से चाहता हूं तो कुछ नमूना डेटा डालने के लिए मैं उसी एसक्यूएल प्लगइन का उपयोग करना चाहता हूं - यानी, किसी भी जीवन चक्र लक्ष्य से बंधे नहीं है। नमूना डेटा के कुछ अलग सेट हैं, इसलिए मैं कुछ अलग निष्पादन को परिभाषित करना चाहता हूं।

लेकिन क्या निष्पादन आईडी का उपयोग कर कमांड लाइन से इन निष्पादनों में से किसी एक को चलाने का कोई तरीका है?

+0

संभावित डुप्लिकेट [कैसे कमांड लाइन से सीधे मेवेन प्लगइन निष्पादन निष्पादित करने के लिए?] (Http://stackoverflow.com/questions/3166538/how-to-execute-maven-plugin-execution-directly-from-command- लाइन) – Joe

उत्तर

85

How to execute maven plugin execution directly from command line? में बताया गया है, इस कार्यक्षमता implementedMNG-5768 के रूप में किया गया है, और Maven 3.3.1 में उपलब्ध है।

बदल जाएगा:

प्रत्यक्ष प्लगइन मंगलाचरण वाक्य रचना का विस्तार वैकल्पिक @ निष्पादन-आईडी पैरामीटर, जैसे, org.apache.maven.plugins अनुमति देने के लिए: Maven-remote-संसाधन-प्लगइन: 1.0: प्रक्रिया @ executionId।

तो, जब तक आप अपने निष्पादन एक आईडी दे:

mvn sql:[email protected] 

निष्पादन अपने पोम में विन्यस्त उपयोग करता है।

46

लेकिन क्या निष्पादन आईडी का उपयोग कर कमांड लाइन से इन निष्पादनों में से किसी एक को चलाने का कोई तरीका है?

नहीं, not possible। क्या हालांकि संभव है जब प्लगइन "विशेष" default-cli निष्पादन आईडी का उपयोग कर कमांड लाइन से शुरू हो जाती है "एक" विन्यास इस्तेमाल किया जाएगा परिभाषित करने के लिए है:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sql-maven-plugin</artifactId> 
    <version>1.4</version> 
    ... 
    <executions> 
    <execution> 
     <id>default-cli</id> 
     <configuration> 
     ... 
     </configuration> 
    </execution> 
    ... 
    </executions> 
</plugin> 

और बस mvn sql:execute कहते हैं।

विवरण (Maven 2.2.0 Release Notes से) के लिए नीचे देखें:

  • MNG-3401 - Maven 2.2.0 में शुरू, लक्ष्यों कमांड लाइन से सीधे लागू से अलग पोम में विन्यस्त किया जा सकता अन्य प्लगइन विशेष executionId का उपयोग करके आमंत्रण default-cli कहा जाता है। कहाँ पहले, कमांड लाइन लक्ष्यों के लिए सभी विन्यास प्लगइन स्तर के विन्यास में जाना था, Maven 2.2.0 अनुमति देता है कमांड लाइन-विशिष्ट विन्यास अपने स्वयं के <execution> में विभाजित किया जा करने के लिए। जानकारी के लिए, Guide to Default Execution IDs देखें।
+1

मुझे यकीन है कि आप दो अलग-अलग प्रोफाइल –

+4

का उपयोग करके जो चाहते हैं उसे प्राप्त कर सकते हैं यह उत्तर अब मैवेन के मौजूदा संस्करणों से पुराना है। @ जो द्वारा प्रदान किया गया उत्तर देखें – Noremac