2011-12-08 23 views
15

İnternetten bir kaynak kodu indirdim ve maven ile oluşturmaya çalışıyorum. Burada kaynak kodu ile birlikte gelen pom.xml dosyasıdır:Maven - Bağımlılıklarla Build

<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 komut kavanoz dosyası oluşturuyor ama nedeniyle eksik bağımlılıkları bu dosyayı yürütemeyebilirsiniz olduğum yükleyin (sınıf istisna ilgili bulunamadı Bu örnekte postgresql bağımlılığı).

Maven'in bağımlılıkları doğru bir şekilde indirdiğini fark ettim (kavanoz kitaplıklarının hepsi yerel maven depo dizinindendir) ancak mvn yüklemesi bu kitaplıkları oluşturulan jar dosyasına kopyalamıyor. Bunu nasıl yapabilirim?

Teşekkürler.

cevap

12

Açıklayıcıyı ve arşiv etiketini maven-derleyici-eklenti bölümünüzden kaldırın. İçerdiği tüm bağımlılıkları olan bir JAR oluşturmak için. Bunu pompanızın inşa eklentileri bölümüne koymalısın.

<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> 

komut isteminde aşağıdaki çalıştırarak JAR dosyası oluşturun.

mvn clean compile assembly:single 
+1

önce eklenmesi gerekiyor – steve