maven 2 मावेन के साथ एक एंट बिल्ड कैसे लपेटें?




maven-2 ant (4)

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

मैं build.xml से सटे पोम होने पर योजना बना रहा हूं। पोवर .war विरूपण साक्ष्य के निर्माण के लिए उचित समय पर चींटी लक्ष्य को कॉल करने के लिए पैकेज लक्ष्य में एंटीरन प्लगइन का उपयोग करेगा।

प्रशन:

a) मैं .war फ़ाइल बना रहा हूँ, लेकिन यह चींटी के माध्यम से बनाई गई है, न कि मावेन के साथ, इसलिए पोम में युद्ध पैकेजिंग प्रकार होने का कोई मतलब नहीं है। मेरी पैकेजिंग का प्रकार क्या होना चाहिए?

बी) मैं अपने चीफ आउटपुट डायरेक्टरी से कलाकृतियों को कैसे खींचता हूं, ताकि मैं लक्ष्य के लिए तैयार हो जाऊं?

ग) यदि ए और बी के लिए कोई अच्छा जवाब नहीं हैं, तो क्या ऐसे चींटी कार्य हैं जो मेरी .war विरूपण साक्ष्य को साझा भंडार में प्राप्त करने के लिए मावेन की तैनाती की कार्यक्षमता को दोहराते हैं?


जैसा कि मैंने एक अलग प्रश्न में लिखा था, आप वास्तव में कई चींटी लक्ष्यों का उपयोग करके मावेन के साथ एक ANT परियोजना को लपेट सकते हैं। मान लें कि आपकी मौजूदा चींटी परियोजना में साफ और निर्माण कार्य हैं, यह परियोजना को लपेटने का एक उपयोगी तरीका हो सकता है ताकि आप मावेन लक्ष्यों का उपयोग कर सकें और इसके पास मौजूदा चींटी कोड का नक्शा हो।


चींटी बनाने के लिए आप maven-antrun-plugin का उपयोग कर सकते हैं। फिर प्रोजेक्ट द्वारा चींटी द्वारा निर्मित जार को संलग्न करने के लिए build-helper-maven-plugin का उपयोग करें। संलग्न कलाकृतियों को पोम के साथ स्थापित / तैनात किया जाएगा।
यदि आप पैकेजिंग pom साथ अपनी परियोजना को निर्दिष्ट करते हैं, तो मावेन चींटी निर्माण के साथ संघर्ष नहीं करेगा।

नीचे दिए गए उदाहरण में, चींटी build.xml को src / main / ant में माना जाता है, एक compile लक्ष्य है, और आउटपुट के लिए ant-output.jar

<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <executions>
    <execution>
      <phase>process-resources</phase>
      <configuration>
        <tasks>
          <ant antfile="src/main/ant/build.xml" target="compile"/>
        </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>1.3</version>
  <executions>
    <execution>
      <id>add-jar</id>
      <phase>package</phase>
      <goals>
        <goal>attach-artifact</goal>
      </goals>
      <configuration>
        <artifacts>
          <artifact>
            <file>${project.build.directory}/ant-output.jar</file>
            <type>jar</type>
          </artifact>
        </artifacts>
      </configuration>
    </execution>
  </executions>
</plugin>

इसे देखें: आपको मावेन या आइवी के बजाय मावेन एंट टास्क का उपयोग क्यों करना चाहिए

और विशेष रूप से, चींटी से एक मावेन लक्ष्य को कैसे प्राप्त किया जाए, इस उदाहरण में पाया जा सकता है:

http://code.google.com/p/perfbench/source/browse/trunk/perfbench/grails-gorm/build.xml

उपरोक्त जानकारी के साथ आपको वह प्राप्त करने में सक्षम होना चाहिए जिसकी आपको आवश्यकता है। अगर आपका कोई प्रश्न हैं, तो मुझे से पूछें।


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <id>install-library</id>
            <phase>install</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <groupId>x.x</groupId>
                <artifactId>ant-out-atifacts</artifactId>
                <version>${project.version}</version>
                <file>ant-output.jar</file>
                <packaging>zip</packaging>
            </configuration>
        </execution>
    </executions>
</plugin>




ant