2015-05-20 12 views
9

için ek kavanozları devre dışı bırak Tek bir çalıştırılabilir jar oluşturmak için maven-shade-plugin kullanıyorum. Eklentinin hedef dizinde tek bir jar (foo.jar) oluşturmasını beklerim. Ancak, iki başka kavanoz da oluşturacaktır: original-foo.jar ve foo-shaded.jar.maven-shade-plugin

Neden bu dosyaları oluşturur ve bu davranışı nasıl devre dışı bırakırım?

(Biz Bu nedenle o devre dışı bırakmak mümkündür eminim. Bu dosyalar oluşturulur olmadığını eklenti, kullanarak başka bir proje var, ama fark göremedim.)

cevap

1

Bir göz atabilirsiniz maven-shade-plugin belgelerine, size tanımladığınız davranışı kontrol edecek bir shadedArtifactAttached seçeneği verecektir.

<plugin> 

     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 

     ... 

     <configuration> 
      <outputFile>/tmp/watchdog.jar</outputFile> 
     </configuration> 

</plugin> 

diğer bilgiler içinde:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.3</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <shadedArtifactAttached>false</shadedArtifactAttached> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
+3

Bu https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#outputFile foo-shaded.jar kurtulmak için yardım 'dosya, ancak' original-foo.jar' dosyası hâlâ oluşturulur. Yukarıdaki projenin neden eksik olmasına rağmen diğer projenin neden "foo-shaded.jar" oluşturduğunu merak ediyorum. – michas

4

ÇıktıDosyası kullanarak eklenti maven-gölge-eklentisi diğer davranışları bypasing edilir