2013-08-30 19 views
6

POM'unuzun bağımlılık yönetimi bölümünde aynı artefaktın iki farklı versiyonuna sahip olmak için geçerli bir kullanım durumu var mı?Maven - Bağımlılık yönetiminde çoklu artifakt sürümleri

Kök POM'u böyle bir örnek içeren bir projeye bakıyorum. Projenin kendisi, bu "yinelenen bağımlılık" ın farklı sürümlerini kullanan çoklu modüllere sahiptir. Bazı modüller bu nedenle, ikisi arasında ayrım yapabilmek için artifaktın versiyonunu bağımlılıkları arasında açıkça belirtmek zorundadır.

Modüllerin POM dosyaları zaten sürümü belirtmek zorundaysa, çoğaltmanın ebeveynin bağımlılık yönetiminde olmasının nedeni nedir? Bağımlılık yönetiminden kaldırılmış olsa bile bağımlılık düzgün bir şekilde ele alınacaktı, o halde neden ilk etapta onu orada kopyalıyorsunuz?

Bunun iyi bir uygulama olup olmadığını veya böyle bir duruma daha iyi bir çözüm olup olmadığını anlamaya çalışıyorum. Eğer Maven3 + kullanarak eğer

cevap

7

Aslında, böyle bir uyarı alırsınız:

[WARNING] 
[WARNING] Some problems were encountered while building the effective model for groupId:artifactId:jar:1.0-SNAPSHOT 
[WARNING] 'dependencyManagement.dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: junit:junit:jar -> version 3.8.1 vs 3.0 @ line 15, column 18 
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. 
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects. 
[WARNING] 

Maven'in ilk pick up, bu nedenle ikinci asla kullanılmayacaktır. Sadece daha fazla karışıklık önlemek için onu kaldırın :)