2011-01-11 10 views
15

से पीओएम जो कि मेरे प्रोजेक्ट में विरासत में प्लगइन के लिए <pluginManagement> शामिल है जो कुछ अतिरिक्त arguments निर्दिष्ट करता है।पोम प्लगइन में परिभाषित मेवेन प्लगइन कॉन्फ़िगरेशन ओवरराइड कमांड लाइन

मेरा प्रश्न है: क्या इस मामले में कमांड लाइन से arguments पैरामीटर को ओवरराइड करने का कोई तरीका है?

<pluginManagement> 
    <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <configuration> 
      <arguments>-Prelease</arguments> 
     </configuration> 
    </plugin> 
</pluginManagement> 

कारण है कि कमांड लाइन तर्क काम नहीं करता है:

mvn release:prepare -Darguments="-Pmock -Prelease" 

-Darguments="-Pmock -Prelease" हिस्सा कोई प्रभाव नहीं है

माता पिता पोम इस है। जब arguments पहले से निर्दिष्ट नहीं है, यह काम करता है।

मेरे लिए मूल पीओएम को संशोधित करना या इसका उपयोग नहीं करना संभव नहीं है।

उत्तर

10

समाधान मिला। में पीओएम मैं इसे जोड़ता हूं जो पैरेंट पीओएम में सेटिंग्स को ओवरराइड करता है और कमांड लाइन पर अतिरिक्त तर्क निर्दिष्ट करने की अनुमति देता है, उदा। -Darguments=-Pmock

<pluginManagement> 
    <plugin> 
     <artifactId>maven-release-plugin</artifactId> 
     <configuration> 
      <arguments>${arguments} -Prelease</arguments> 
     </configuration> 
    </plugin> 
</pluginManagement> 
6

आप एक विन्यास है, जो पहले से ही (Maven Bug MNG-4979 देखें) पोम में सेट कर दिया जाता ओवरराइड नहीं कर सकते। इस व्यवहार से बचने के लिए आप चर का उपयोग कर सकते हैं। आपके उत्तर का स्निपेट इसका उपयोग करता है।

+0

एमएनजी -4979 के लिए अद्यतन लिंक: https://issues.apache.org/jira/browse/MNG-4979 – erwaman

+0

धन्यवाद। मैंने टिप्पणी में लिंक अपडेट किया। –

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