Apache Maven non è solo un "build tool" (come lo è invece Apache Ant) ma è di più cioè è un "project management tool".
Non si occupa solo della pura fase di compilazione/package di un progetto .... fa anche ben altro (arriva anche alla generazione delle pagine per un sito web che descrive e documenta il progetto).
Il principale punto di forza di Maven è la gestione automatica delle dipendenze, tramite il concetto delle "coordinate" degli artifact. Un artifact è, detto genericamente, un prodotto generato da Maven, tipicamente come un file .jar di una libreria.
La differenza tra Apache Ant e Maven è che Ant è puramente "procedurale" mentre Maven è estremamente "dichiarativo".
Ant non ha alcuna nozione, preconcetto o convenzione riguardo il progetto, devi dire tu nel build.xml esattamente quali sono le fasi ("target") del build e cosa devono fare esattamente e in quale ordine.
Maven invece è "dichiarativo" perché nel pom.xml c'è principalmente solo una descrizione del progetto, di come si chiama, quali sono le sue "coordinate", cosa deve generare (jar, war, ecc...), quali sono le sue dipendenze, ecc...
Maven ha già di suo tutta una serie di convenzioni su come deve essere strutturato il progetto (struttura delle directory, ecc..).
Riguardo la tua domanda su Eclipse .... ogni IDE è in grado di creare un progetto usando una sua specifica struttura e i suoi file di configurazione del progetto. Che ovviamente sono specifici del IDE. Un progetto creato in questo modo in Eclipse non lo puoi "aprire" in NetBeans e nemmeno viceversa.
Un progetto gestito con Ant o Maven lo puoi gestire anche dai vari IDE (aggiungendo al IDE gli eventuali plugin/estensioni necessarie) e soprattutto puoi farci il build anche senza alcun IDE ... semplicemente da prompt dei comandi.
P.S. ti suggerisco di apprendere sia un po' di Ant che di Maven per capire potenzialità di ciascuno e le differenze.


Rispondi quotando