2012-05-29 17 views
15

में इंस्टॉल-फ़ाइल (कृपया उत्तर देने से पहले कम से कम इसे पढ़ें: यह अस्थायी माप है! नहीं, हम स्थानीय रिपोजिटरी प्रबंधक सेट अप नहीं करना चाहते हैं और मैन्युअल रूप से एक स्क्रिप्ट चला सकते हैं)एकाधिक इंस्टॉल: एक ही pom.xml

हमारे पास कुछ निर्भरताओं के साथ एक विरासत परियोजना है जिसमें हमारे पास स्रोत और जावाडोक सहित स्थानीय प्रतिलिपि है, और जो उत्पादन में अच्छी तरह से काम करने के लिए सिद्ध हुआ है, लेकिन जो केंद्रीय में समान गुणवत्ता में उपलब्ध नहीं है। हम उन जारों का उपयोग करना चाहते हैं जो हमारे पास पहले से हैं।

मुझे पता चला है कि मैं स्थानीय मशीन के भंडार में इंजेक्शन वाली कलाकृतियों को प्राप्त करने के लिए मैन्युअल रूप से जटिल mvn install:install-file कमांड चला सकता हूं, लेकिन मैं इसे अपने विभिन्न मॉड्यूल के सामान्य मेवेन निर्माण के हिस्से के रूप में काम करना चाहता हूं।

को देखते हुए मैं कई जार जो प्रत्येक एक install:install-fileकैसे मैं अपने pom.xml में करना चाहिए पूरी तरह से अनुरूप के साथ सामान्य Maven का निर्माण होने के लिए के साथ डाला जा करने की जरूरत है जिसमें एक अन्यथा खाली मॉड्यूल है?

या क्या मैं मॉड्यूल के आउटपुट होने के लिए कई जार संलग्न कर सकता हूं और किसी भी तरह से जावाडोक और स्रोत को भी संलग्न कर सकता हूं)?

(और, कृपया, केंद्रीय को प्रस्तुत या एक स्थानीय भंडार प्रबंधक की स्थापना के बारे में कोई सुझाव। यह एक अस्थायी समाधान है जब तक हम निर्भरता के एक नए संस्करण में नवीनीकृत करने का अवसर है)

+0

क्या आप इस परियोजना के हर निर्माण के साथ चलाने के लिए इंस्टॉल करना चाहते हैं? स्थानीय स्थापना एक बार बात नहीं है? – jtahlborn

+0

मुझे लगता है कि यह एक पोम आर्टिफैक्ट बना सकता है और जब आर्टिफैक्ट बदलता है तो केवल अपडेट किया जा सकता है? लेकिन अगर इसके लिए जरूरी है, तो अब यह स्वीकार्य होगा। –

+0

देखें [यह उत्तर] (https://stackoverflow.com/a/48670812/1744774) [मैं अपने libs प्रोजेक्ट फ़ोल्डर से Maven के साथ सभी JAR लोड करना चाहता हूं] (https://stackoverflow.com/q/48665906/ 1744774) इस बात से बचने के लिए कि प्रत्येक बिल्ड पर 'इंस्टॉल-प्लगइन' चलता है। –

उत्तर

17

मैं कल्पना कर सकते हैं ऐसा कुछ काम करेगा (यह हर निर्माण पर इसे स्थापित करेगा):

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-install-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>inst_1</id> 
        <phase>initialize</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <!-- config for file 1 --> 
        </configuration> 
       </execution> 
       <execution> 
        <id>inst_2</id> 
        <phase>initialize</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <!-- config for file 2 --> 
        </configuration> 
       </execution> 
       <!-- execution file 3... --> 
      </executions> 
     </plugin>    
    </plugins> 
</build> 
+0

अच्छी तरह से काम करता है - धन्यवाद! –

+1

मुझे विश्वास है कि इस उत्तर में एक त्रुटि है। ' प्रारंभिक 'को बदलना था' 'मेरे लिए ग्रहण लुना में स्थापित करना था। अन्यथा ग्रहण इसे अवैध जीवन चक्र के रूप में चिह्नित करेगा – MattEdge

+0

"एमवीएन प्रारंभिक" जार को स्थानीय मैवेन भंडार में रखता है लेकिन "एमवीएन इंस्टॉल" नहीं करता है। क्यूं कर ? – signonsridhar

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