2011-12-08 18 views
15

मैंने इंटरनेट से एक स्रोत कोड डाउनलोड किया है और मैं इसे मैवेन के साथ बनाने की कोशिश कर रहा हूं। यहाँ pom.xml फ़ाइल है कि स्रोत कोड के साथ आए हैं:मेवेन - निर्भरता के साथ बनाएँ

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>com.mycompany</groupId> 
<artifactId>myArtifact</artifactId> 
<packaging>jar</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>myArtifact</name> 
<url>http://maven.apache.org</url> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <archive> 
        <manifest> 
         <mainClass>myArtifact.Main</mainClass> 
        </manifest> 
       </archive> 
       <source>1.5</source> 
       <target>1.5</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>8.4-701.jdbc4</version> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 
</project> 

mvn स्थापित आदेश जार फ़ाइल पैदा कर रहा है, लेकिन मैं क्योंकि लापता निर्भरता के इस फ़ाइल को निष्पादित करने में असमर्थ हूँ (कक्षा अपवाद संबंधित नहीं मिला इस उदाहरण में postgresql निर्भरता के लिए)।

मैंने देखा है कि मैवेन ने निर्भरता को सही ढंग से डाउनलोड किया है (जार लाइब्रेरी सभी स्थानीय मैवेन रिपोजिटरी निर्देशिका में हैं) लेकिन एमवीएन इंस्टॉल इन पुस्तकालयों को जेनरेट की गई जार फ़ाइल में कॉपी नहीं कर रहा है। मैं यह कैसे कर सकता हूँ?

धन्यवाद।

उत्तर

12

अपने मैवेन-कंपाइलर-प्लगइन अनुभाग से descriptorRefs और संग्रह टैग को हटाएं।

सभी निर्भरताओं के साथ एक जार उत्पन्न करने के लिए स्वयं निहित है। आपको इसे अपने पोम के बिल्ड प्लगइन अनुभाग में रखना होगा।

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass> 
          com.test.your.main.class.goes.Here 
         </mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

कमांड प्रॉम्प्ट पर निम्न चलाकर JAR फ़ाइल बनाएं।

mvn clean compile assembly:single 
+1

से पहले जोड़ने की आवश्यकता है – steve

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