2012-02-16 6 views
12

Ho intenzione di ottimizzare i tempi di costruzione dei nostri progetti. Una delle cose che richiede più tempo è una compilazione dei progetti.Quale approccio per migliorare la creazione incrementale dei progetti di esperti preferisci?

causa di problema noto della Maven menzionato in particolare qui: Maven incremental building dobbiamo usare mvn pulita prima di ogni processo di costruzione.

Ho studiato questa domanda e ha scoperto due approcci:

  1. Incremental-build-plugin Maven Mojo
  2. Maven 2 Reactor Plugin

Ho testato Incremental-build-plugin Maven Mojo e sembra piuttosto buono. Come vedo Maven 2 Reactor Plugin implementa quasi la stessa funzionalità ma il comando speciale dovrebbe specificare per ottenere risultati (mvn reattore: rendere per esempio).

Quindi ho concluso che Maven 2 Reactor Plugin è più conveniente solo per gli sviluppatori se intendono ottimizzare l'ora degli edifici sui loro computer locali. Ma ho qualche esitazione perché Maven 2 Reactor Plugin è ospitato, e (come credo) è supportato come plugin ufficiale Maven, ma Incremental-build-plugin Maven Mojo è ospitato su java.net.

E le mie domande sono:

  1. sono le mie conclusioni che questi due plugin risolvono quasi lo stesso problema giusto?
  2. Fare qualcuno ha alcuna esperienza con entrambi questi plug-in e in grado di dare qualsiasi feed back su di loro?
  3. Avete altre idee sull'ottimizzazione dell'edificio?
+0

La mia domanda è: quanto tempo la compilazione prende? Quanto dura il test? Com'è il rapporto di questo? – khmarbaise

risposta

-1

Hai provato a usare Jenkins (o Hudson)? È abbastanza bello e gestisce molti piccoli progetti dipendenti. È anche molto facile da configurare su un server. Consiglierei almeno provandolo. Per configurare un server e configurare 20 progetti Maven richiede solo pochi minuti.

La cosa che mi piace è che controllerà il controllo del codice sorgente ed eseguirà una build ogni X minuti, e successivamente creerà automaticamente tutti i progetti upstream.

+0

Hudson/Jenkins non ottimizza la build (che è la domanda dell'OP). Inoltre, l'uso di H/J non aiuta con la build locale quando la compilazione richiede per sempre – Attila

0

Il plug-in reattore è più per quando si desidera creare solo un sottoinsieme dei moduli all'interno di una build, il plugin incrementale è più finalizzato a costruire solo quei moduli che sono stati modificati dall'ultima compilazione.

Mentre vedo che si sta utilizzando lo stesso effetto, probabilmente si è più interessati al plug-in incrementale di build da quello che si è detto. Se puoi usare i due insieme per assicurarti di costruire solo i moduli/dipendenze di cui hai bisogno se hanno modifiche non compilate, non lo so.

PS - Penso che il bug pulito sia stato corretto nell'ultima versione del plugin di build incrementale.

3

Entrambi i plug-in menzionati sopra non accelerano il tempo di compilazione per il vostro caso. se vuoi accelerare il tuo tempo di compilazione ti propongo di aggiornare a maven 3 con il supporto per la build parallela.

Tuttavia, ciò che viene fatto con i plug-in descritti sopra può essere ottenuto anche fuori dalla scatola con maven3, eccetto le funzionalità svn relative del plugin del reattore. per questo avresti bisogno di jenkins come menzionato nel post precedente.

utili Maven 3 funzioni per velocizzare il vostro costruire:

mvn clean compile -T 3 (using three threads for paralell builds) 

mvn -amd -pl groupid:arifactId (builds the specified projects and all dependent artifacs) 
Problemi correlati