2016-04-07 16 views
2

Maven bağımlılık eklentisinin kopya bağımlılıkları hedefini kullanmaya çalışıyorum. Aşağıdaki pasajla its official example işaretliyim.Maven maven bağımlılık eklentisi kopya bağımlılıkları, çıktıları gözardı ediyorDört etme

Sorunum: <outputDirectory> düğümünü belirtmeme rağmen bağımlılıklar her zaman target\dependency klasörüne kopyalanır.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> 
       <id>copy-dependencies</id> 
       <phase>package</phase> 
       <goals> 
        <goal>copy-dependencies</goal> 
       </goals> 
       </execution> 
       <configuration> 
         <outputDirectory>${project.build.directory}/aaa</outputDirectory> 
         <overWriteReleases>true</overWriteReleases> 
         <overWriteSnapshots>true</overWriteSnapshots> 
         <overWriteIfNewer>true</overWriteIfNewer> 
       </configuration>     
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Soru: Burada

benim pom.xml parçasıdır ben yanlış yapıyorum ne? Çıkış dizini projenin dışında ilan etmek mümkün mü? Örneğin: c:\temp? package faz ve eklenti (infaz) sahip olan gerçekleştirirken

+1

Maven'i nasıl çalıştırıyorsunuz? Komuta ne? – Tunaki

+0

Tutulmadan ve komut satırından denedim. Komut: mvn bağımlılığı: kopya bağımlılıkları – zsom

cevap

3

için, sadece bu nedenle sadece, yani bir mvn package çağrı sırasında eklenti tarafından alınacak, sahası içinde, tanımlanmış bir konfigürasyonu olan maven-dependency-plugin bir yürütülmesine yapılandırılmış ona bağlanma.

aşağıdaki şekilde komut satırından eklentisi çağırmak varsa: yapılandırması dikkate alınmayacaktır beri Gerçekten sadece varsayılan değerleri kullanır

mvn dependency:copy-dependencies 

.

Aslında, outputDirectory seçenek için varsayılan değer gerçekten de:

Standart: ${project.build.directory}/dependency

maven olarak, bir eklenti yapılandırması dışında (genel yapılandırma olarak tanımlanabilir execution bölümü, tüm yürütmelere uygulanır ve satır çağrılarını komutları için) veya yürütme başına (sizin durumunuzda olduğu gibi bir execution bölümü içinde).

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <configuration> 
        <outputDirectory>${project.build.directory}/aaa</outputDirectory> 
        <overWriteReleases>true</overWriteReleases> 
        <overWriteSnapshots>true</overWriteSnapshots> 
        <overWriteIfNewer>true</overWriteIfNewer> 
      </configuration> 
      <executions> 
       <execution> 
       <id>copy-dependencies</id> 
       <phase>package</phase> 
       <goals> 
        <goal>copy-dependencies</goal> 
       </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Not: Senin durumunda


, muhtemelen bu kadar basit aşağıdaki şekilde eklenti bölümünü değiştirmek, konfigürasyon her iki durumda da geçerli olmasını istiyorum biz yürütme, yapılandırmayı yükseldi eklenti kapsamı (global) kapsamı. Biz maven hep her bir her mvn package çağrı sırasında bu eklenti hedefi yürütmek anlamına gelir yürütme, muhafaza yukarıda

Ayrıca konfigürasyonda, not edin. Bu davranışı istemiyorsanız ve yalnızca komut satırı yürütmesini kullanmayı bekliyorsanız, executions bölümünü kaldırabilirsiniz.

+0

sizler harikasınız! Cevabınızı 3 dakika içinde kabul edebilirim. Çok teşekkürler – zsom