2013-05-17 7 views
114

Quali sono esattamente le differenze tra mvn clean package e mvn clean install? Quando eseguo entrambi questi comandi, entrambi sembrano fare la stessa cosa.In che modo "mvn clean package" e "mvn clean install" sono diversi?

+7

Si prega di guardare [Introduzione al ciclo di vita Build - Lifecycle Riferimento] (http://maven.apache.org/guides/introduction/introduction-to-the -lifecycle.html # Lifecycle_Reference) e cercando 'package' e' install'. –

+0

Un pacchetto (lo crea nella destinazione) e nelle installazioni (pacchetti e lo inserisce nel repository) È necessario eseguire la versione successiva se si desidera utilizzare questa versione in un altro modulo. –

+2

Forse dovrebbe essere riaperto? È perfettamente possibile rispondere e non ho trovato difficoltà a rispondere. Inoltre, se qualcuno è nuovo di zecca, è facile vedere come le due fasi sembrano fare la stessa cosa. Lo modificherò nel tentativo di renderlo meno vago. –

risposta

172

Bene, entrambi puliranno. Ciò significa che rimuoveranno la cartella di destinazione. La vera domanda è qual è la differenza tra il pacchetto e l'installazione?

package compilerà il codice e lo impacchetterà anche. Ad esempio, se il tuo pom dice che il progetto è un jar, creerà un jar per te quando lo impacchetti e lo metti da qualche parte nella directory di destinazione (per impostazione predefinita).

install verrà compilato e pacchetto, ma inserirà anche il pacchetto nel repository locale. Questo renderà così altri progetti possono fare riferimento ad esso e prenderlo dal tuo repository locale.

Documentation

+0

Perché l'installazione di mvn è più veloce del pacchetto mvn? –

+0

@SharadHolani perché le build sono incrementali. 'mvn clean install' non è più veloce di' pacchetto mvn'. – OrangeDog

+0

Per il mio progetto, mvn package assembly: single che crea il contenitore di grassi richiede più tempo di un'installazione di mvn. Compilare e installare entrambi i barattoli grassi equivalenti? –

7

pacchetto & installare sono diverse fasi del ciclo di vita esperto di accumulo. la fase del pacchetto eseguirà tutte le fasi precedenti a quella & e si fermerà con il confezionamento del progetto come un barattolo. Allo stesso modo, la fase di installazione eseguirà tutte le fasi precedenti &, infine installerà il progetto localmente per altri progetti dipendenti.

per comprendere esperto di costruzione del ciclo di vita si prega di passare attraverso il seguente link https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

+0

Che cosa intendi per "e infine installa il progetto localmente per altri progetti dipendenti" –

2

pacchetto genererà Jar/guerra come per file POM. installa installa il file jar generato nel repository locale per eventuali altre dipendenze.

installare fase viene dopo pacchetto fase

+2

Penso che intendessi la fase di "installazione" arriverà _after_ "pacchetto" fase – Attila

+0

il primo imballaggio avverrà quindi quei pacchetti (jar/war) verranno installati. –

+0

"Installa fase _follows_pacchetto di fase". Il modo in cui è correntemente formulato è al contrario. "Seguito da" significa "dopo". –