2013-03-22 7 views
44

So che questa è una domanda complicata, ma vorrei sapere qual è il migliore nel caso di un sistema che è già in produzione, con molti bug e un design davvero scadente. Davvero un casino.Maven o Ivy? Quale è meglio con un sistema già in produzione? E le altre differenze?

In realtà, lo sto chiedendo perché sto già convertendo questo progetto in Maven e sto affrontando MOLTI problemi. Avevo bisogno di regolare la struttura delle cartelle, separare un quadro terribile fatta presso l'azienda dal progetto (è stato trasformato in un barattolo lib), fissare un sacco di dettagli che ha rotto il progetto per tutto il tempo, configurare il pom.xml fare tutto ciò che Ant stava già facendo e scoprire le librerie che sono realmente utilizzate nell'applicazione come le loro versioni (una grande parte delle librerie è stata rinominata senza il numero di versione e il file manifest era vuoto).

Beh, è ​​stato davvero un inferno. Sono impazzito durante questo compito e la domanda che mi ha seguito in continuazione era "E se lo stessi convertendo in Ivy? Sarebbe più facile?".

Non ho mai lavorato con Ivy, ma poiché so che funziona con Ant, è più facile che Maven adotti il ​​progetto. D'altra parte, Maven è molto più usato su tutta la parola (mi sbaglio?) E questo dovrebbe avere una ragione!

Quindi non si tratta di mie domande:

  • Integrazione con Jenkins/Hudson: Con L'edera è così facile come con Maven?
  • Plugin sonar: la stessa domanda sopra. L'integrazione è semplice?
  • Plugin per Eclipse: questo è un punto molto debole di Maven. Il plugin è terribile, ma non conosco quelli di Ivy.
  • Processo di distribuzione: Una volta che tutto è configurato, distribuito e pubblicato il progetto con Maven, è estremamente semplice. E con Ivy?
  • Conversione: Beh, la mia esperienza nella conversione di un progetto in Maven è stata terribile, ma il sistema non ha aiutato. L'opzione che ho avuto è che Maven è sorprendente per i nuovi progetti, i progetti che lavorano con Maven da quando è stato creato, ma non è una buona scelta se si dispone di un progetto grande e disorganizzato. Ho sbagliato?
  • Plugin: Che è un MOLTO plugin da configurare in POM.xml. C'è così tante opzioni per Ivy?
  • Popolarità: quale è più popolare? Quale è più usato e perché?

Bene, è questo. Grazie mille!

+0

Si dovrebbe ignorare popolarità. Sia Maven che Edera sono ben supportati :) – Jayan

+0

Ci sono troppi confronti. Spero che possano darti un'idea., Ad es. http://stackoverflow.com/questions/318804/maven-or-ivy-for-managing-dependencies-from-ant http://java.dzone.com/articles/maven-vs-ivy-numbers http: // docs.codehaus.org/display/MAVEN/Feature+Comparisons http://ant.apache.org/ivy/m2comparison.html http://www.google.com/trends/explore#q=apache%20maven,%20apache % 20ivy –

+1

Abbiamo attraversato la stessa decisione nell'ultimo anno o giù di lì e ci siamo stabiliti su Ant + Ivy. Se stessimo ricominciando da zero, Maven sarebbe probabilmente la scelta giusta. Probabilmente non avrai bisogno di alcun plugin per Ivy. Uno svantaggio: chiedere aiuto alla comunità per i problemi è molto più difficile per Ivy, perché la comunità è molto più piccola. Guarda i ritardi nelle risposte (e non risposte) alle domande a riguardo qui su StackOverflow per vedere cosa intendo. –

risposta

63

Prima di tutto, leggere il numero Ivy/Maven comparison dal sito Web di Ivy. Le informazioni chiave:

In primo luogo, la differenza più importante è che non sono affatto lo stesso tipo di strumenti. Apache Maven è uno strumento di gestione e comprensione del progetto software, mentre Apache Ivy è solo uno strumento di gestione delle dipendenze, altamente integrato con Apache Ant ™, il famoso strumento di gestione delle build. Quindi forse un confronto più interessante paragonerebbe Apache Ant + Ivy vs Apache Maven. Ma questo va oltre lo scopo di questa pagina che si concentra solo sulla gestione delle dipendenze.

Ivy aggiunge funzionalità di gestione delle dipendenze di Ant, in modo davvero, la questione in termini di ciò che costruire il sistema si usa quando è:

  • uso Ivy/Ant
  • Migrazione a Maven

Se la build è già usando Ant, Ivy sarà una transizione più facile dal momento che i vostri script di build non hanno bisogno di essere portato su un sistema di compilazione diverso.

Se si decide di passare a Maven sarà necessario uno sforzo maggiore, perché è necessario riscrivere i tuoi script di build e Mavenize tutto così come configurare il vostro gestione delle dipendenze.

E sarà anche più facile da porto la configurazione la gestione delle dipendenze da Ivy/Ant a Maven se si decidesse di andare in quella direzione. Quindi la gestione delle dipendenze di Ivy sarebbe un buon trampolino di lancio per una configurazione Maven a lungo termine.

+0

Davvero grazie per le spiegazioni! – Pmt

+1

@PimentaDev. [Questo link fornisce un ottimo e equo confronto su entrambi.] (Http://leshazlewood.com/2010/01/13/maven-2-vs-antivy-revisited/) –

+0

Sei il mio salvatore @prunge! – pratnala

Problemi correlati