2009-03-29 18 views
5

Ho cercato di capire a cosa serve Ant, ma ancora non capisco.Come usare Ant?

Qualcuno può darmi un caso d'uso per il quale Ant è usato, qualcosa che posso provare a vedere perché Ant è utile e che tipo di cose posso usarlo?

Realizzo Java in Eclipse e sto appena iniziando con servlet e Google Web Toolkit.

+1

efficacemente un duplicato del http://stackoverflow.com/questions/610732/what-is-build-automation-software-for-example-ant –

+0

(In che le risposte a questa domanda rispondere direttamente a questa domanda.) –

risposta

17

Ant è uno strumento di creazione. Supponiamo ad esempio di avere diversi progetti nell'area di lavoro di Eclipse, che sono tutti pezzi di un'applicazione più grande. Per creare tutto in un file jar con dipendenze incluse, è possibile selezionare tutti i progetti ed esportarli come file jar, ma questo è un po 'macchinoso.

Ant è una soluzione estensibile. Si definisce il processo di compilazione in XML e ant compila i file java secondo questa ricetta.

Ant può fare anche di più che costruire. Ho lavorato in un'azienda in cui il meccanismo di implementazione era rappresentato dai pacchetti Debian nel nostro repository. Avevamo degli script Ant che costruivano i file jar, li disponevano e alcuni file di metadati in un pacchetto Debian, li inserivano nel repository e rigeneravano il manifest repository.

Come in qualsiasi altra cosa Java, c'è un sacco di configurazioni di cui hai bisogno per avere la testa in giro prima di essere esperto di Ant, ma alcuni dei tutorial di base dovrebbero darti un'idea di cosa ti stai prendendo.

4

Ant viene utilizzato, come qualsiasi strumento di costruzione, per automatizzare le attività ripetitive di creazione del codice.

Anziché eseguire javac ogni volta manualmente, si inserisce un comando in uno script Ant, quindi quando si esegue ant eseguirà javac per te.

mio processo di compilazione tipico con la formica più o meno così:

  • corsa javac sulla sorgente
  • corsa javac sulle tets
  • eseguire la strumentazione cobertura della sorgente (questo è per la copertura di codice)
  • jar le classi dalla sorgente
  • jar i COBERTURA strumentato classi
  • jar l'u classi di test nit
  • corsa checkstyle, PMD, findbugs sulla fonte per trovare le avvertenze
  • eseguire i test di unità tramite cobertura per ottenere una copertura del codice di loro

Così che è 8 passi che ho fatto su ogni costruire quello che posso fare semplicemente eseguendo "ant".

2

Ant è un file di creazione basato su XML.

Non vedrai molti vantaggi usando Ant se sei un singolo sviluppatore che già costruisce e pacchettizza codice usando un IDE come Eclipse.

Il vantaggio maggiore si ha quando una squadra collabora con il codice. Quindi otterrai una grande spinta se usi Cruise Control o qualche altra funzione di integrazione continua. CC richiede un build.xml Ant.

0

Questo è dalla documentazione ANT e lo spiega piuttosto bene.

Perché un altro strumento di compilazione quando c'è già fanno, gnumake, nmake, marmellata, e altri ? Poiché tutti questi strumenti hanno limitazioni con cui l'autore originale di Ant non può vivere con lo sviluppo del software su più piattaforme. Gli strumenti di creazione sono intrinsecamente basati su shell : valutano un insieme di dipendenze , quindi eseguono i comandi non diversamente da quello che si avrebbe su una shell . Ciò significa che è possibile estendere facilmente questi strumenti utilizzando o scrivendo qualsiasi programma per il sistema operativo su cui si sta lavorando ; tuttavia, questo significa anche che ci si limita al sistema operativo, o almeno il tipo di sistema operativo, come Unix, su cui si sta lavorando.

I makefile sono anch'essi intrinsecamente malvagi. Chiunque abbia lavorato su di loro per qualsiasi ora è incappato nel problema temuto della scheda . "Il mio comando non è in esecuzione perché ho uno spazio davanti alla mia scheda ? !!" ha detto l'autore originale di Ant modo troppe volte. Strumenti come Jam si sono occupati in gran parte di questo, ma hanno ancora un altro formato per utilizzare e ricordare.

La formica è diversa. Invece di un modello dove è esteso con comandi basati su shell, Ant viene esteso utilizzando le classi Java . Invece di scrivere comandi shell , i file di configurazione sono basati su XML , chiamando un albero di destinazione dove vengono eseguite varie attività. Ogni attività viene eseguita da un oggetto che implementa una particolare interfaccia Operazione .

Certo, questo rimuove alcune delle potenza espressiva che è insito in essere in grado di costruire un comando shell come find . -name foo -exec rm {}, ma ti dà la possibilità di essere cross-platform - di lavorare ovunque e ovunque . E hey, se hai davvero bisogno di eseguire un comando shell, Ant ha un compito che consente di eseguire comandi diversi da in base al sistema operativo su cui è in esecuzione .