2013-08-30 18 views
6

Czy istnieje ważny przypadek użycia dwóch różnych wersji tego samego artefaktu w sekcji zarządzania zależnościami POM?Maven - Wiele wersji artefaktów w zarządzaniu zależnościami

Patrzę na projekt, którego główny POM zawiera taki przykład. Sam projekt ma wiele modułów używających różnych wersji tej "zduplikowanej zależności". Niektóre moduły muszą więc jawnie określać wersję artefaktu wśród swoich zależności, aby rozróżnić te dwa.

Jeśli pliki POM modułów muszą mimo wszystko określać wersję, jaki jest powód duplikacji w systemie zarządzania zależnościami? Zależność zostanie poprawnie sprawdzona, nawet jeśli została usunięta z zarządzania zależnościami, więc dlaczego miałabyś ją powielić w pierwszej kolejności?

Po prostu próbuję ustalić, czy jest to dobra praktyka, czy istnieje lepsze rozwiązanie takiej sytuacji.

Odpowiedz

7

Właściwie, jeśli używasz Maven3 +, dostaniesz ostrzeżenie takiego:

[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 podniesie pierwszy, więc drugi nigdy nie zostaną wykorzystane. Po prostu usuń go, aby zapobiec większej dezorientacji :)

Powiązane problemy