2011-04-20 22 views
9

के लिए एक डिफ़ॉल्ट मोजो को परिभाषित करने के लिए मैंने एक प्लगइन लिखा है जो लक्ष्य/जेनरेट-स्रोत/में एक फ़ाइल उत्पन्न करता है। इस प्लगइन में केवल एक मोोजो है। इस मोजो निम्नलिखित के साथ घोषित किया जाता है:मैवेन प्लगइन

/** 
* @goal convertsql 
* @phase generate-sources 
* @requiresProject 
*/ 
public class ConverterMojo extends AbstractMojo { 

परियोजना में, मैं प्लगइन का उपयोग करना चाहते हैं लेकिन अगर मैं फांसी टैग निर्दिष्ट नहीं करते हैं यह काम नहीं करता:

<executions> 
    <execution> 
     <id>convert</id> 
     <goals><goal>convertsql</goal></goals> 
     <phase>generate-sources</phase> 
    </execution> 
</executions> 

मैं करूंगा इस तरह प्लगइन को कॉन्फ़िगर करने की तरह:

<plugin> 
    <groupId>com.my.plugins</groupId> 
    <artifactId>sqlconverter</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <configuration> 
     <sourceFile>src/main/resources/sql/schema_oracle.sql</sourceFile> 
    </configuration> 
</plugin> 

क्या मेरे प्लगइन के लिए डिफ़ॉल्ट मोजो निर्दिष्ट करना संभव है? डिफ़ॉल्ट लक्ष्य और चरण मोोजो में परिभाषित किया गया है ... मेरा मतलब है, जार प्लगइन का उपयोग करते समय, मुझे उस लक्ष्य को बताना नहीं है जिसे मैं निष्पादित करना चाहता हूं, किस चरण में ... यह स्वचालित है।

धन्यवाद!

+0

के लिए से Maven बुक 11.6.3. Overriding the Default Lifecycle देखें कैसे आप अपने प्लगइन के लिए की तरह लग रहे पोम करता है? – khmarbaise

उत्तर

1

आपको अपनी प्लगइन में META-INF/plexus/components.xml फ़ाइल जोड़ने की आवश्यकता है और अपने प्लगइन ब्लॉक में <extensions>true</extensions> सेट करें।

संदर्भ

+0

धन्यवाद, मैंने लाइफसाइकिल.एक्सएमएल, घटकों.एक्सएमएल के साथ कोशिश की है, इसे काम नहीं कर सकता ... मैं विचार भूल गया, मैं कॉन्फ़िगर को पोम में रखूंगा। –

+0

@ जेरोम मैंने वास्तव में इसे स्वयं नहीं किया है, या तो। मैंने सिर्फ दस्तावेज़ों को उद्धृत किया :-) –