2011-08-23 9 views
8

Dato che è molto difficile trovare informazioni sugli intervalli di versioni delle dipendenze nella documentazione ufficiale (il migliore che potrei inventare è http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution), mi chiedo se siano ancora considerati cittadini di prima classe di POM Maven.Gli intervalli di versione delle dipendenze di Maven dovrebbero essere considerati deprecati?

Penso che la maggior parte della gente sarebbe d'accordo sul fatto che sono comunque una cattiva pratica, ma mi chiedo perché sia ​​così difficile trovare qualcosa di ufficiale al riguardo.

risposta

7

Non sono deprecati nel senso formale che verranno rimossi in una versione futura. Tuttavia, i loro limiti (e la conseguente mancanza di ampia adozione), significano che non sono così utili come inizialmente previsto, e anche che è improbabile che ottengano miglioramenti senza un ripensamento significativo.

Questo è il motivo per cui la documentazione è solo nella forma del documento di progettazione - esistono, ma i casi di utilizzo importanti non sono mai stati completati al punto in cui li consiglierei generalmente di utilizzarli.

Se si dispone di un caso d'uso che funziona al momento, e può contenere le limitazioni, è possibile aspettarsi che continuino a funzionare per il prossimo futuro, ma c'è ben poco oltre a ciò nelle opere.

+0

Grazie, molto utile! – Kutzi

5

Non so perché pensi che gli intervalli di versione non siano documentati. C'è un abstract concreto nella documentazione Maven Complete Reference.

Tuttavia, un problema enorme (secondo me) è che è documentato che la risoluzione degli intervalli di dipendenza non deve risolversi in un'istantanea (versione di sviluppo) a meno che non sia inclusa come limite esplicito "". (il link che hai fornito) ma il sistema si comporta in modo diverso. Se utilizzi gli intervalli di versioni, otterrai le versioni SNAPSHOT se esistono nel tuo intervallo (MNG-3092). La discussione se questo è voluto o no non è ancora finita.

Attualmente, se si utilizzano intervalli di versioni, è possibile ottenere le dipendenze di SNAPSHOT. Quindi devi stare attento e decidere se è necessario. Potrebbe essere utile per le tue dipendenze sviluppate, ma dubito che dovresti usarlo per le librerie di terze parti.

+0

bene stavo cercando su google e il meglio che ho trovato era il link sopra. Mi sarei aspettato qualcosa di ufficiale sul sito di Apache, dato che dopotutto è un progetto Apache. Ma grazie per il link. – Kutzi

+0

@Kutzi Sonatype è un contributore [strong] (http://www.sonatype.com/About-Sonatype/Contributions) del progetto (ed ecosistema) maven - quindi la loro documentazione è anche una sorta di informazioni di "prima mano". – FrVaBe

+1

Ma solo "tipo di prima mano".Quindi, fino a quando non vedo la documentazione ufficiale di Apache, sostengo la mia affermazione che gli intervalli di versione non sono documentati ;-) – Kutzi

-1

Gli intervalli di versione sono l'unica ragione per cui Maven è ancora utile. Anche considerare di non usarli è una cattiva pratica in quanto ti porta al disastro di build multi-modulo, poms genitoriali non funzionali, build che impiegano 10 minuti o più, progetti mal strutturati come Spring, Hibernate e Wicket mentre copriamo il nostro Illegal Argomento podcast.

Per rispondere alla tua domanda, non sono deprecati e vengono utilizzati attivamente in molti progetti (tranne quando Sonatype consente di corrompere i metadati in Apache Maven Central).

Se si desidera un esempio davvero valido di una build non a più moduli (solo reactor.xml) in cui vengono utilizzati estensivamente gli intervalli di versione, consultare Codice appiccicoso (http://code.google.com/p/ stickycode /)

Problemi correlati