2010-02-22 13 views
7

के साथ काम करते समय सामान्य/साझा प्लगइन का उपयोग करें मेरे पास एक प्रोजेक्ट है जो कई प्रोफाइल का उपयोग कर रहा है।मेवेन: एकाधिक प्रोफाइल

  • Maven-संकलक प्लगइन
  • Maven-संसाधन-प्लगइन
  • Maven-antrun-प्लगइन
  • Maven-अचूक-प्लगइन
  • Maven-war-: प्रत्येक प्रोफ़ाइल निम्न प्लग-इन का उपयोग करता है प्लगइन

बोल्ड में चिह्नित एक हालांकि एकमात्र प्लगइन है जहां प्रोफ़ाइल के बीच कोई अंतर है (di एन्टर प्लगइन का उपयोग कर तरंग विन्यास फाइलों की प्रतिलिपि बनाई जाएगी)। 4 अन्य प्लगइन्स सभी प्रोफाइल के लिए बिल्कुल वही कॉन्फ़िगर किए गए हैं।

प्रश्न अब है: क्या इन आम प्लगइन्स को केवल एक बार शामिल करने का कोई तरीका है लेकिन फिर भी डिफ़ॉल्ट रूप से सभी प्रोफाइल के लिए उनका उपयोग करें?

कुछ की तरह:

<shared><plugin1><plugin2>...</shared>
<profile><plugin3></profile>
<profile><plugin3></profile>
...

धन्यवाद,
टिजिन

उत्तर

10

एक प्लगइन सभी प्रोफ़ाइल द्वारा प्रयोग किया जाता है, तो बस उस में परिभाषित <build> भाग:

<project> 
... 
    <build> 
     <plugins> 
      Your shared plugins go here... 
     </plugins> 

    <profiles> 
     Definition of profiles... 
    </profiles> 
</project> 

इस तरह, आप केवल profiles ब्लॉक में एंटर प्लगइन को परिभाषित करेंगे।

<build> 
    <plugins> 
     <plugin> 
      <groupId>...</groupId> 
      <artifactId>plugin1</artifactId> 
     </plugin> 
     ... 
    </plugins> 
</build> 

फिर अपने प्रोफ़ाइल में विशिष्ट प्लग-इन जोड़ते:

<profiles> 
    <profile> 
     <id>...</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin3</artifactId> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

तुम भी एक ही प्लगइन अलग ढंग से अलग प्रोफाइल में इस तरह से कॉन्फ़िगर कर सकते हैं

+0

त्वरित उत्तर के लिए धन्यवाद; यह पहले एक ट्राइफ है (कुछ दिन पहले) लेकिन फिर उसने मुझे त्रुटियों का निर्माण किया। मैंने इसे फिर से कोशिश की और अब यह ठीक काम करता प्रतीत होता है इसलिए स्पष्ट रूप से त्रुटियों का एक अलग कारण था। –

2

बस अपने build खंड में आम प्लगइन को शामिल :

<profiles> 
    <profile> 
     <id>profile1</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value1</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>profile2</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value2</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
+0

पीटर, एस्लो आपके त्वरित उत्तर के लिए धन्यवाद। –

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