Supponiamo che io stia facendo una compilazione completa sul mio grande progetto che ha 7 moduli e sul sesto modulo, la compilazione non è riuscita perché un test è fallito. Esiste un modo per avviare la compilazione dal punto in cui non è riuscita?
Risposte:
Puoi riprendere la costruzione dal 6 ° modulo usando -rfo --resume-from:
-rf, --resume-from
Riprendi il reattore dal progetto specificato
Vedere le Opzioni avanzate del reattore per i dettagli.
subproject/subsubprojectcome parametro
maven -rf <module name> clean install
mvn -rf :moduleName install. (Non sono sicuro del motivo per cui è necessario il colon, ma sembra che lo sia - almeno per la mia configurazione.)
installfunzioni solo se la tua build iniziale aveva un obiettivo, perché la build che riprende può quindi ottenere gli artefatti che erano già stati compilati dal tuo repository Maven locale per risolvere le dipendenze da essi. Trovo che sia una cattiva pratica eseguire installbuild poiché finisci per ingombrare il tuo repository locale con snapshot e potresti finire per dipendere da uno snapshot più vecchio di quello che ti aspetti. Sembra che per le build in cui solo tu packagee non lo fai install, l'uso -rfnon è un'opzione: dovrai fare l'intera build.
puoi riprendere la compilazione da qualsiasi modulo tu voglia usando il -rfcomando. Ad esempio, se la tua compilazione non è riuscita in myproject-proxy, puoi utilizzare il seguente comando:
mvn -rf myproject-proxy clean install
guarda il riepilogo di Maven e vedrai i moduli eseguiti e dove si ferma Maven. quindi prova questo:
mvn clean install-Dmaven.test.skip=true -rf :yourModule
Secondo " Novità di Maven 4 " (novembre 2020) di Maarten Mulders , sarai presto in grado di farlo, con l'imminente Maven 4.0.0 (1 ° trimestre 2021)
Considera questa struttura di progetto di esempio:
Usa --also-make insieme a --resume-from
Il primo miglioramento nel Reactor è una correzione di bug.
In precedenza, se la compilazione del progetto non riusciva nel modulo client, si riceveva un suggerimento per riprendere la compilazione--resume-from :client. Ma se lo facessi, la build si interromperà di nuovo: questa volta perché Maven non è riuscito a trovare il modulo comune.
Potresti pensare che l'aggiunta di--also-make(o-am) risolva il problema, ma non lo farebbe. Questo bug di vecchia data non c'è più.Se si combina
--resume-from :clientcon--also-make, il Reactor troverà tutti i moduli nel progetto e continuerà la costruzione come richiesto.
Riprendi automaticamente dall'ultimo punto di errore
Ma è probabile che non te ne accorgerai. Il
--resume-from :clientproblema è che ti fa pensare più del necessario.Con Maven 4, puoi rendere la tua vita ancora più semplice e utilizzabile
--resume, o-rin breve. Riprenderà automaticamente la compilazione dal modulo che ha avuto esito negativo .Ma c'è di più! Forse stai usando build parallele . Una sequenza di moduli è stata creata con successo, mentre la creazione di un'altra sequenza di moduli è stata interrotta.
In questo scenario, l'utilizzo-rsalterà i moduli che erano riusciti nella build precedente.La combinazione di queste due funzionalità potrebbe migliorare il tempo necessario per creare il tuo grande progetto software aziendale!
Sintassi: mvn -rf modulename mavengoal o mvn --resume-from modulename mavengoal
Es: mvn -rf admin-module clean install o mvn --resume-from admin-module clean install
-rfnon è breve per --remove-from. È l'abbreviazione di--resume-from
Potresti eseguire la compilazione del modulo 6 separatamente per vedere se fallisce ancora, ma temo che tu debba compilare tutti i moduli dall'inizio quando vuoi eseguire la build "grande".
Modifica: Ovviamente le build successive saranno più veloci perché il codice dei moduli 1-5 è già compilato, a meno che non esegui pulito come parte della tua build.