2011-02-09 6 views
8

मेरे पास एक मैवेनाइज्ड जावा प्रोजेक्ट (मेवेन 2) है जिसे मैं एक जार में बनाना चाहता हूं, जो जार-इन-निर्भरता descriptorRef की आपूर्ति करके पर्याप्त आसान है pom.xml।एक जार का निर्माण और इसे मैवेन-असेंबली-प्लगइन के साथ एक ज़िप में शामिल किया गया

हालांकि मैं भी एक बिन फ़ोल्डर कि जार फोन से कुछ .exe और .bat फ़ाइलें, अन्य लोगों के अलावा के साथ एक ज़िप में अपने प्रोजेक्ट को तैनात करने, जरूरत है। (मैं Tanuki उपयोग कर रहा हूँ, लेकिन यह उपयोग के मामले के लिए मुझे लगता है कि कोई फर्क नहीं पड़ता)

दूसरे शब्दों में, मैं एक निर्माण, जिसमें पहले मेरी स्रोतों (और निर्भरता) एक जार में पैक कर रहे हैं की जरूरत है और उस जार में डाल दिया है तो बिन फ़ोल्डर से कुछ अतिरिक्त फ़ाइलों के साथ एक ज़िप।

मैं अपने pom.xml और 'assembly'.xml में क्या रखना चाहिए?

उत्तर

8

Maven-विधानसभा-प्लगइन है कि करने के लिए सही उपकरण है।

आप अपने पोम के "निर्माण" खंड में इस प्लगइन की घोषणा करना और अपनी परियोजना की जड़ में एक और विन्यास फाइल "assembly.xml" बनाने के लिए किया है। इस फ़ाइल में, आपकी इच्छा आपकी ज़िप फ़ाइल की सामग्री को परिभाषित करेगी।

कॉन्फ़िगरेशन विकल्प आधिकारिक वेबसाइट पर वर्णित हैं: http://maven.apache.org/plugins/maven-assembly-plugin/

यहाँ कि आपकी आवश्यकताओं के अनुरूप होना चाहिए इस प्लगइन का एक बुनियादी विन्यास उदाहरण है।

पोम config:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <finalName>zipfile</finalName> 
     <descriptors> 
      <descriptor>${basedir}/assembly.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

विधानसभा config:

<assembly> 
    <formats> 
     <format>zip</format> 
    </formats> 

    <fileSets> 
     <fileSet> 
      <directory>to_complete</directory> 
      <outputDirectory /> 
      <includes> 
       <include>**/*.jar</include> 
       <include>**/*.bat</include> 
       <include>**/*.exe</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</assembly> 
+0

अपने जवाब के लिए धन्यवाद, यह महत्वपूर्ण लात शुरू मैं इसे काम करना आरंभ करने के लिए आवश्यक था। – NomeN

+1

मुझे एक और वर्णनकर्ता जोड़ने की ज़रूरत थी जो यद्यपि मेरा जार बनाता है। असल में मैंने आपके द्वारा उल्लिखित साइट से जार-से-निर्भरता डिस्क्रिप्टर प्रारूप की प्रतिलिपि बनाई है, जैसे कि जार-इन-निर्भरता descriptorRef का उपयोग ज़िप निर्माण में लिफाफा हुआ है। अर्थात यह इस प्रकार से 'जार पहले तो जिप और फिर बनाता है, जो पहली बार (बेकार) जार के साथ लेकिन दूसरे, अजीब अधिकार के बिना एक ज़िप बनाता-dependencies.jar साथ ?! – NomeN

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