2012-09-12 17 views
15

मैं मैवेन में निर्भरताओं के साथ एक .jar फ़ाइल बनाना चाहता हूं। दुर्भाग्य से मुझे अपने बिल्डपैथ में कुछ बाहरी .jars शामिल करना होगा। जब मैं अब इस परियोजना को मैवेन पैकेज के साथ बनाने की कोशिश करता हूं तो मुझे एक त्रुटि मिलेगी कि उन बाहरी। Jars नहीं मिले हैं।मेवेन जार बिल्ड प्रक्रिया में बाहरी जार कैसे शामिल करें?

कैसे उन जार जोड़ने के लिए मेरी पोम फ़ाइल अनुकूल करने के लिए? वर्तमान:

<plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>copy-dependencies</id> 
         <phase>prepare-package</phase> 
         <goals> 
          <goal>copy-dependencies</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> 
          <overWriteReleases>false</overWriteReleases> 
          <overWriteSnapshots>false</overWriteSnapshots> 
          <overWriteIfNewer>true</overWriteIfNewer> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2-beta-4</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
    </plugins> 

उत्तर

13

आप <scope>system</scope> साथ निर्भरता के रूप में अपने निर्माण के रास्ते में बाहरी जार शामिल कर सकते हैं।

चेक इस link

+0

धन्यवाद, यह मेरे मामले के लिए ठीक काम करता है। –

+6

यह सही दिखता है, लेकिन क्या होगा यदि यह जेडीके का हिस्सा नहीं है, उदाहरण के उद्धरण के रूप में। क्या होगा यदि आप एक जार का संदर्भ देना चाहते हैं जो कि उदाहरण के लिए पोम के समान निर्देशिका में है? (प्रोजेक्ट फ़ोल्डर में) – mmcrae

+2

अच्छा और ठीक है, लेकिन उस डिप्टी को तब आपके जार/युद्ध के साथ पैक नहीं किया जाएगा। Maven आधिकारिक पृष्ठ के अनुसार, – demaniak

2

इस के लिए एक सरल समाधान यह स्थानीय Maven भंडार में जोड़ने के लिए

एक तरीका यह करना है के रूप में पिछले पोस्ट में सुझाव दिया के माध्यम से mvn आदेशों स्थापित है।

एक और आसान तरीका यह है कि, 1) अपने ग्रहण विचार में परियोजना चयन मेवेन विकल्प पर राइट क्लिक करें। 2) एक मैवेन रिपॉजिटरी विकल्प में एक आर्टिफैक्ट स्थापित या तैनात करें का चयन करें और अगले पर क्लिक करें। 3) विरूपण साक्ष्य फ़ाइल चेकबॉक्स के पास ब्राउज़ पर क्लिक करें & चयन अपने जार फ़ाइल 4) ग्रुप और ArtifactId और संस्करण दर्ज सुनिश्चित पोम & चेकसम बनाने उत्पन्न जाँच कर रहे हैं & पैकेजिंग जार खत्म, Wallah पर

क्लिक करें है !!! अपनी नौकरी से किया जाता है जार अपने स्थानीय भंडार में जोड़ा जाता है जो आप setting.xml या एम 2 निर्देशिका में परिभाषित कर सकते हैं

ग्रुप के अनुसार, ArtifactId है कि आप के अनुसार दर्ज किया है & जार संस्करण अब बस सरल Maven निर्भरता को जोड़ने आयात करें और यह है कि आपका बाहरी जार मैवेन द्वारा पैक किया जाएगा।

2

आप .m2 फ़ोल्डर

mvn install:install-file -Dfile=[JAR] -DgroupId=[some.group] -DartifactId=[Some Id] -Dversion=1.0.0 -Dpackaging=jar 

में बाहरी जार जोड़ने के लिए आदेश नीचे का उपयोग की जरूरत है यह आपके .m2 फ़ोल्डर में में दी गई जार जोड़ देगा। उसके बाद pom.xm पर जाएं और केवल दिए गए समूह आईडी, आर्टिफैक्ट आईडी और संस्करण के साथ निर्भरता जोड़ें।

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