Newsgroup: it.comp.java
Titolo: MAVEN vs ANT

Ciao ragazzi,
ho letto un po' di articoli a riguardo, e ho notato che su questo
newsgroup non c'è una vera e propria discussione a riguardo; mi
piacerebbe sapere quello che ne pensate a riguardo dei due oggetti non
identificati nel subject :)
Insomma: pro e contro e, soprattutto, se conviene utilizzare uno
anziché l'altro.
Grazie!
:)
Luca Paolucci
Ciao Rootkit!!! :)))

In sintesi, e ovviamente IMHO:
= Ant =
PRO:
- leggero;
- progetti auto-contenuti;
- estremamente facile personalizzare processo di build;
- stabile, ben documentato, tanti add-on
CONTRO:
- i jar nella gestione delle versioni: ostacolo superabile con degli
add-on o una customizzazione ad-hoc;
- non c'è un modo unico, sicuro e standard per partire da zero con un
progetto già pronto.
= Maven =
PRO:
- layout dei sorgenti standard;
- stabile, ben documentato, tanti add-on;
- moltissime feature
CONTRO:
- pesante, soprattutto per quanto riguarda la connettività: ostacolo
superabile con add-on e tool appositi (repository managers);
- molto burocratico per quanto riguarda la gestione di dipendenze,
customizzazione, creazione di estensioni anche banali
In sostanza i punti di forza di uno sono quelli deboli dell'altro, e
asreveciv.
Io penso un gran bene di entrambi, perché (soprattutto Ant a suo
tempo) ci hanno liberato dal tastino a forma di cartone & rotellina
degli IDE, con tutte le conseguenze positive che ha avuto :)
--
www.megadix.it

 --
www.megadix.it
Grazie Megadix! :)
Dulcis in fundo: secondo te, per uno come me che non ha esperienza
nell'utilizzo
di entrambi, quale dei due conviene conoscere? Un vero "Chuck Norris"
di JEE li dovrebbe conoscere entrambi? E i migliori tutorial a
riguardo per quanto riguarda Eclipse che-non-siano-del-dodicesimo-
secolo? :)))
Ciao!
Luca

Megadix! Bello il tuo sito! L'ho messo trai preferiti.
Domanda:
JBoss, Websphere, Jonas, Resin, Glassfish.
Secondo te qual è il più bello, il più tosto, il più gagliardo tra
quelli sopra? Faresti una classifica? :)
Metti il link così in firma: 
http://www.megadix.it
 invece di 
www.megadix.it
,
in modo
che quelli che leggono le news con google google non incappino nella
pagina di errore. :)
Ciao!
Luca

 anziché l'altro.
Secondo me conviene saper utilizzare l'uno E l'altro :-)
In estrema sintesi, e con svariate imprecisioni:
Ant è più uno strumento di produttività personale, che fa un sacco di
cose per chi sviluppa. Esistono inoltre una gran quantità di plugin
che gli permettono di interfacciarsi con servlet container e
application server per fare anche deploy/undeploy ecc.
Utilizzando in aggiunta Ivy (
http://ant.apache.org/ivy/download.cgi
),
hai anche la soluzione del problema delle dipendenze: nel suo utilizzo
di base Ivy utilizza i repository di Maven per risolvere le
dipendenze.
Maven è uno strumento adatto allo sviluppo di prodotti/progetti che
coinvolgono un gruppo di sviluppatori, e che permette di metter su
processi di build adatti ad ogni esigenza.
Per intenderci: se devo sviluppare un'applicazione per i fatti miei,
userò Ant (+ Ivy se voglio sfruttare il suo meccanismo di risoluzione
delle dipendenze, senza avere tutta la complessità di Maven), se
invece lavoro in un contesto più grande, è molto probabile che il mio
responsabile tecnico/tecnologico avrà messo su una infrastruttura
basata su Maven.
Ciao
Daniele

"Maven2", vuol dire che ho l'ultima versione, giusto?
Ciao!
Luca Paolucci

 >"Maven2", vuol dire che ho l'ultima versione, giusto?
Maven prevede una sua installazione che non richiede necessariamente
la presenza di un IDE.
Galileo in ogni caso, tramite il plugin disponibile all'update site
http://m2eclipse.sonatype.org/sites/m2e
, ti offre il supporto per
Maven 2, con Maven integrato (anche se puoi sempre scegliere di usare
un'altra installazione di Maven presente sulla tua macchina, nel caso
in cui vuoi usare ad esempio l'ultima versione, che magari non è
ancora disponibile nel plugin).
Per quanto riguarda ANT e l'uso in Eclipse, lo trovi integrato per
default. E' possibile poi installare il plugin IvyIDE per la gestione
delle dipendenze in ANT con Ivy, all'interno di Eclipse (come detto,
Ivy per default risolve le dipendenze appoggiandosi ai repository di
Maven). L'update site è 
http://www.apache.org/dist/ant/ivyde/updatesite
.
Anche per ANT/Ivy valgono ovviamente le considerazioni di cui sopra:
puoi usarli tranquillamente senza passare per Eclipse.
A questo url trovi un libro consultabile e scaricabile gratuitamente
(link al pdf sulla destra) sull'uso di Maven con Eclipse:
http://www.sonatype.com/books/m2eclipse-book/reference/
In  questa pagina invece trovi tutti i libri consultabili e
scaricabili gratuitamente su Maven:
http://www.sonatype.com/documentation/books
Si tratta di libri in corso di scrittura, periodicamente sono
aggiornati dai loro autori e rilasciati con licenza Creative Commons.
Per un riferimento in italiano ti consiglio le serie di articoli che
mokabyte ha dedicato a Ant e Maven:
ANT (4 articoli a cura di Giovanni Puliti, link alla serie di articoli
sulla sinistra):
http://www2.mokabyte.it/cms/article.run?articleId=U6E-KYB-TJQ-R9J_7f000001_30520983_cef94360
MAVEN (7 articoli a cura di Luca Vetti Tagliati, link alla serie di
articoli sulla sinistra):
http://www2.mokabyte.it/cms/article.run?articleId=S85-L5J-HP3-86O_7f000001_30480431_0844866c
Ciao
Daniele

 la presenza di un IDE.
[...]
Grazie Daniele! Sei un grande! :)
Meno male che mi hai risposto in modo così dettagliato e completo! Mi
ero già rassegnato alla criptica (per me) guida presente sul sito di
Maven!
Grazie! Ciao Ciao!
ho salvato tutto tra i preferiti!  :)
Luca

 l'altro.
non c'è una risposta univoca.
maven oltre alla gestione delle dipendenze (che abbiamo visto si può 
aggiungere anche in ant) è pensato per gestire tutto il ciclo di vita 
dello sviluppo, dal kickstart fino alla distribuzione della versione.
ant invece è pensato più stile "make", cioè come assemblatore delle fasi 
di build del progetto. è chiaro che anche con ant ci si può fare tutto 
(basta definire task) però il processo te lo devi in qualche modo 
inventare. dal canto suo però ant sulla fase di build ti da una maggiore 
flessibilità grazie al fatto che, nel bene e nel male, te la scrivi da 
solo. 
in soldoni: se ti interessa automatizzare solo la fase di build ant può 
essere lo strumento più adatto, se invece ti interessa getire tutte le 
fasi del progetto in modo stanard vale decisamente la pena di usare maven.

 Luca Paolucci
Io preferisco Ant perche' maven non ci ho mai capito un cazzo mentre ant lo
ho imparato in un minuto senza mai leggere la documentazione
inoltre in passato su un grosso progetto in maven l'architect ( ottimo )
chelo aveva scelto dopo 3 mesi non ne poteva piu'
ciao Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/