mvn clean install vs. deploy vs. release


132

Sto solo imparando Maven e di recente abbiamo dovuto andare sempre di più. Vorrei sapere la differenza tra

mvn clean install

mvn release

mvn deploy

Si prega di essere il più descrittivo possibile.

Risposte:


223

I clean, installe le deploy fasi sono valide le fasi del ciclo di vita e invocando li attiveranno tutte le fasi di loro precedenti, e gli obiettivi legati a queste fasi.

mvn clean install

Questo comando richiama la cleanfase e quindi la installfase in sequenza:

  • clean: rimuove i file generati in fase di creazione nella directory di un progetto ( targetper impostazione predefinita)
  • install: installa il pacchetto nel repository locale , per utilizzarlo come dipendenza in altri progetti localmente .

mvn deploy

Questo comando richiama la deployfase:

  • deploy: copia il pacchetto finale nel repository remoto per la condivisione con altri sviluppatori e progetti .

mvn release

Questa non è una fase valida né un obiettivo, quindi non farà nulla. Ma se si riferisce al plug-in di rilascio Maven utilizzato per automatizzare la gestione delle versioni. Il rilascio di un progetto avviene in due passaggi: preparee perform. Come documentato:

La preparazione di un rilascio passa attraverso le seguenti fasi di rilascio:

  • Controlla che non ci siano cambiamenti non impegnati nelle fonti
  • Verificare che non vi siano dipendenze SNAPSHOT
  • Cambia la versione nei POM da x-SNAPSHOT a una nuova versione (ti verrà chiesto di utilizzare le versioni)
  • Trasforma le informazioni SCM nel POM per includere la destinazione finale del tag
  • Esegui i test di progetto con i POM modificati per confermare che tutto è in ordine
  • Commettere i POM modificati
  • Contrassegnare il codice in SCM con un nome di versione (questo verrà richiesto)
  • Eseguire il bump della versione nei POM su un nuovo valore y-SNAPSHOT (verranno richiesti anche questi valori)
  • Commettere i POM modificati

E poi:

L'esecuzione di una versione esegue le seguenti fasi di rilascio:

  • Acquista da un URL SCM con tag opzionale
  • Esegui gli obiettivi Maven predefiniti per rilasciare il progetto (per impostazione predefinita, distribuire site-deploy)

Guarda anche


1
Potete per favore chiarire questo: questa non è una fase valida né un obiettivo, quindi non farà nulla. Ma se si riferisce al plug-in di rilascio Maven. Se non è né una fase né un obiettivo, come lo chiamiamo?
gvlasov,

26
  • mvn installinserirà il progetto Maven in pacchetto nel repository locale , per l'applicazione locale che utilizza il progetto come dipendenza.
  • mvn release fondamentalmente inserirà il tuo codice attuale in un tag sul tuo SCM, cambierà la tua versione nei tuoi progetti.
  • mvn deployinserirà il progetto Maven in pacchetto in un repository remoto per la condivisione con altri sviluppatori.

Risorse:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.