2013-08-30 16 views
6

Esiste un caso d'uso valido per avere due versioni diverse dello stesso artefatto nella sezione di gestione delle dipendenze del tuo POM?Maven - Versioni multiple di artefatti nella gestione delle dipendenze

Sto guardando un progetto il cui root POM contiene un esempio. Il progetto stesso ha più moduli che utilizzano versioni diverse di questa "dipendenza duplicata". Alcuni moduli devono quindi specificare esplicitamente la versione del manufatto tra le loro dipendenze in modo da distinguere tra i due.

Se i file POM dei moduli devono specificare comunque la versione, qual è la ragione per avere la duplicazione nella gestione delle dipendenze del genitore? La dipendenza verrebbe cercata correttamente anche se fosse stata rimossa dalla gestione delle dipendenze, quindi perché dovresti duplicarla lì in primo luogo?

Sto solo cercando di capire se questa è una buona pratica o se c'è una soluzione migliore per una situazione del genere.

risposta

7

In realtà, se si utilizza Maven3 +, si otterrà un messaggio di avviso come questo:

[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 prenderà la prima, in modo da non verrà mai utilizzato il secondo. Basta rimuoverlo per evitare ulteriore confusione :)

Problemi correlati