2011-02-08 16 views
15

केवल 1 तैनाती जार बनाने की हमारी नीति है। सभी पर्यावरण-विशिष्ट विन्यास अलग रखा जाता है, और हम उन्हें एक साथ एक साथ बनाते हैं। इसलिए हमारी वर्तमान चींटी प्रक्रिया के तहत, हमारे पास प्रत्येक वातावरण के लिए एक गुण फ़ाइल है, उन पर लूप है, और प्रत्येक वातावरण के लिए कॉन्फ़िगरेशन फ़ाइलों का एक सेट बनाते हैं।मेवेन एक प्रोफ़ाइल में कई प्रोफाइल बनाएं

मेरे वर्तमान पीओएम एक्सएमएल में, मैं कमांड लाइन पर केवल एक प्रोफ़ाइल प्रदान करने में सक्षम हूं। क्या मैवेन के माध्यम से हासिल करना संभव है?

यहाँ pom.xml

<!-- Define profiles here and make DEV as default profile --> 
<profiles> 

    <!-- dev Profile --> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
    </profile> 

    <!-- qa Profile --> 
    <profile> 
     <id>qa</id> 
     <properties> 
      <env>qa</env> 
     </properties> 
    </profile> 

    <!-- prod Profile --> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <env>prod</env> 
     </properties> 
    </profile> 

</profiles> 
... 


<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.4.3</version> 

    <executions> 
     <execution> 

      <phase>validate</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 

      <configuration> 

       <filters> 
        <filter>env/${env}.properties</filter> 
       </filters> 

       <outputDirectory>${project.build.directory}/config/${env} 
       </outputDirectory> 
       <resources> 
        <resource> 

         <filtering>true</filtering> 

         <directory>${basedir}/src/main/config/default 
         </directory> 
         <includes> 
          <include>*.xml</include> 
          <include>*.properties</include> 
         </includes> 
        </resource> 

के संबंधित भाग के कुछ

धन्यवाद कर रहे हैं ....., प्रभजोत

+0

यहां इस के लिए वर्कअराउंड का वर्णन किया गया है: https://stackoverflow.com/questions/12320322/build-multiple-artifacts-with- dififferent-classifiers-at-once – stokito

उत्तर

19

Maven चींटी की तरह नहीं है। चींटी के साथ, आप मूल रूप से वह कर सकते हैं जो आप चाहते हैं जब आप इसे करना चाहते हैं। मेवेन के साथ, एक स्पष्ट और दस्तावेज build life cycle है, और यह एक घटक (और संभावित रूप से निर्माण के लिए अन्य कलाकृतियों को जोड़ने) पर लक्षित है।

हालांकि आप जो करना चाहते हैं वह एक घटक को कई बार बनाने के लिए है, लेकिन विभिन्न मानकों के साथ। यह मैवेन लाइफसाइकिल में फिट नहीं है। तो आपको कुछ बाहरी प्रक्रियाओं को पुनरावृत्ति करने के लिए क्या करना होगा और विभिन्न मानकों के साथ बार-बार मैवेन को कॉल करना होगा।

इसे पूरा करने का क्लासिक तरीका एक शेल स्क्रिप्ट का उपयोग करना होगा, लेकिन आप जावा या मेवेन संदर्भ से अलग प्रक्रिया लॉन्च करने के लिए Maven Invoker का भी उपयोग कर सकते हैं।