Domanda

Dalla mia piccola esperienza, ho usato solo Ant come strumento di costruzione. Ci sono altri progetti migliori e perché?

È stato utile?

Soluzione

Maven

È molto meglio di formica perché per le attività più comuni non è necessario scrivere un build.xml complicato, maven ha impostazioni predefinite molto buone ed è tutto una convenzione sulla configurazione.

Ha anche un grande repository centrale di librerie ed è molto facile configurarlo per, come, "usare i più comuni beni comuni, qualunque cosa". Maven scaricherà quindi l'ultima versione stabile per te (non sarà più necessario controllare i barattoli in VCS) e se verrà rilasciata una nuova versione stabile a monte, la scaricherà anche. Certo, è altrettanto facile bloccarlo su una versione specifica se ne hai bisogno.

È anche ben integrato sia con Netbeans che con Eclipse (plug-in m2eclipse), quindi l'IDE rispetta qualsiasi impostazione (comprese le dipendenze) dichiarate nel file pom.xml.

Ci sono anche alcuni aspetti negativi di Maven: alcuni plugin sono piuttosto scarsamente documentati, l'integrazione con entrambi gli IDE non è davvero perfetta, e che in diversi modi, alcuni messaggi di errore potrebbero essere difficili da capire.

Altri suggerimenti

La formica è ancora un giocatore importante. Nella mia esperienza, è dominante. Inoltre, con Ivy, gestisce alcuni dei punti di forza di Maven. IMO, Ant diventerà un framework per altri strumenti: XML è troppo rigido (vedi link sotto).

Maven 2 è anche un giocatore importante. Conosco persone a cui piace abbastanza e si scontrano con le critiche che erano vere per Maven 1 (ha fatto molta strada).

Groovy offre alcune cose interessanti nello spazio di costruzione, perché si basano su Ant. Gant è usato in Grails, ma può essere inserito in Gradle. Questi possono essere usati anche per Java.

A rischio di sfruttamento del mio blog, ecco un post su Gant e Gradle. Ecco un link al dibattito molto attuale sul loro futuro.

nell'impresa, la formica è ancora il giocatore trincerato. le dipendenze non cambiano rapidamente. a differenza dei progetti open source che continuano a passare alla versione più recente dei barattoli dipendenti, la maggior parte delle aziende NON cerca di cambiare le proprie dipendenze troppo velocemente. Detto questo, i vantaggi di Maven NON sono troppo rispetto alla formica.

Poi di nuovo, se vuoi alcune delle caratteristiche di Maven, i formici hanno edera ( http: // ant. apache.org/ivy/ ) per la funzione Dipendenze.

SE desideri continuare a utilizzare la formica, procurati " ANT IN ACTION " ;, 2a edizione in modo da poter utilizzare la formica per la migliore produttività.

Buona fortuna

Ad alcune persone piace Ivy , che è una dipendenza che gestisce cose per Ant quindi suppongo che le persone che proviene da uno sfondo di formica piacerà.

Altri come Buildr . È una cosa di JRuby, quindi se riesci a destreggiarti con Ruby e Java negli stessi progetti, suppongo che sarà interessante.

Personalmente, uso solo Maven . È facile montare un file pom.xml predefinito e avere tutti i comandi di compilazione a tua disposizione. E quando il progetto cresce, hai già l'infrastruttura in atto per eseguire plugin e aggiungere dipendenze.

Hai anche Gant . Gant è Groovy + Ant, puoi scrivere le tue attività in modo semplice e puoi anche chiamare qualsiasi attività di formica. Se sei un negozio Java e vuoi riutilizzare le abilità di formica che hai ma non ti piace XML, ti consiglio Gant, è molto facile da configurare e puoi incorporarlo in ant (e anche chiamare gant da ant).

Mi piace molto SCons , che è uno strumento di creazione i cui file di configurazione sono tutti solo script Python. Questo farà appello a chiunque conosca Python o linguaggi di scripting simili. SCons è progettato per funzionare bene con Java, C / C ++ e altre lingue e in passato sono stato molto soddisfatto.

Poiché i file SCons sono scritti in Python, puoi scrivere codice Python arbitrario se ti accorgi che devi fare qualcosa di speciale. Tuttavia, se non hai familiarità con Python, allora ci sarà probabilmente una curva di apprendimento più alta rispetto al tentativo di estendere Ant o qualcosa di simile per fare quello che vuoi.

Maven2 sembra essere la cosa emergente.

Per i nostri progetti, tuttavia, stiamo tornando alla formica, ove possibile.

Maven2 richiede un bel po 'di conoscenza per farlo esattamente come vuoi, e le versioni di Maven2 sembrano gestire i percorsi di classe in modo diverso.

Ed è una seccatura controllare tutte le licenze incluse nelle dipendenze delle dipendenze che possono essere attratte.

E potrebbe avere un tempo di avvio più lento, poiché è necessario capire da soli le dipendenze, ma almeno è facilmente leggibile. Nessuna magia succede qui :)

Se usi maven, rifletti su un repository interno come Nexus. In questo modo il tuo software non è morto se alcune librerie decidono di uscire dalla rete *.

* Siamo stati bruciati con maven1; il repository ibiblio maven1 reindirizza e maven1 non supporta reindirizzamenti :(

Ti esorto a iniziare con le tue esigenze quando consideri lo strumento giusto. Ogni progetto è diverso, lo strumento che usi dovrebbe riflettere lo spazio problematico e non la moda.

Detto questo, penso che la formica per uso generale sia ancora probabilmente il miglior strumento generale per la creazione di applicazioni Java. Viene spesso utilizzato in modo efficace con altri strumenti per la gestione delle dipendenze, ma ci riusciamo ad aggirare una soluzione senza problemi.

La buona notizia è che se il tuo processo è buono, il cambio di strumenti di costruzione è un processo abbastanza indolore - lezione - inizia con un buon processo adattato al problema attuale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top