Aslında, tasarım gereği Maven, bir projenin bağımlılığı olarak ilan edilen bir savaşın geçişli bağımlılıklarını çözmez. Orada bu konuda bir sorun, aslında MNG-1991 , ancak Maven 2.x içinde çözülemeyeceği ve ben emin değilim bindirmeleri Bu sorunu gidermek için izin verirse bilmiyorum. Önerilen çözüme dair anlayışım, örneğin pom tipi bir projede bağımlılıkları çoğaltmaktır.
(DÜZENLEME: Biraz daha kazı yaptıktan sonra, bu başlıkta aşağıda alıntı yaptığım ilginç bir şey buldum :
Maven savaş eklentisindeki savaş kaplaması özelliğini yoğun bir şekilde kullandığımız geçen ay AppFuse projesinin geliştirilmesine yardımcı oluyorum. Gerçekten şık bir özellik!
Savaş katmanlarıyla maksimum güç elde etmek için, projelerin savaş eserlerini tam anlamıyla bağımlılıklar olarak kullanmasına izin veren Warpath eklentisini geliştirdim. Kısaca:
1) Savaş bağımlılığı yapılarındaki / WEB-INF / classes dizininin içeriği, normal derleme, vb. Görevler için projenin sınıf yoluna dahil edilebilir.
2) Savaş bağımlılığı eserlerinden geçici bağımlılıklar, diğer eklentiler tarafından kullanılabilir hale gelir, örneğin derleme ve kulak - bu nedenle, sıska savaşlar oluştururken tüm bağımlılıkları dahil etmek zorunda kalmayacaksınız!
Eklenti şimdi son birkaç aydır AppFuse projesinde aktif olarak kullanılıyor ve hem kullanılabilir hem de kararlı olduğu bir noktada olduğunu hissediyorum. Savaş eklentisi ekibi, savaş eklentisinin içine warpath işlevselliğini dahil etmekle ilgilenir mi? Onu barındırmak için en doğal yer gibi görünüyor.
Yani, onunla herhangi bir deneyimim yok, ancak maven warpath eklentisi aslında güzel ve basit görünüyor ve merkezi depoda mevcut. Kullanmak için pom.xml
dosyanıza aşağıdaki eklenti yapılandırma öğesini ekleyin :
[...]
<build>
<plugins>
<plugin>
<groupId>org.appfuse</groupId>
<artifactId>maven-warpath-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<extensions>true</extensions>
<executions>
<execution>
<goals>
<goal>add-classes</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
Ve sınıf yoluna dahil edilmesini istediğiniz savaş bağımlılıklarını, warpath türü bağımlılıkları olarak ekleyin :
[...]
<dependencies>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.appfuse</groupId>
<artifactId>appfuse-web</artifactId>
<version>2.0</version>
<type>warpath</type>
</dependency>
</dependencies>
[...]
Hem savaş hem de savaş yolu bağımlılık türlerine ihtiyaç vardır: savaş türü, savaş katmanını yapmak için Maven savaş eklentisi tarafından kullanılır, savaş yolu türü, proje sınıf yoluna dahil edilecek doğru yapay nesneler listesini belirlemek için Warpath eklentisi tarafından kullanılır.
Bir denerdim.)