Cosa fa esattamente mvn install in maven


Risposte:


124

Come forse saprai, Maven è uno strumento di automazione della compilazione fornito da Apache che non si limita alla gestione delle dipendenze. Possiamo renderlo un peer di Ant e Makefile che scarica tutte le dipendenze richieste.

Su a mvn install, inquadra un albero delle dipendenze basato sulla configurazione del progetto pom.xmlsu tutti i sottoprogetti sotto il super pom.xml(il POM root) e scarica / compila tutti i componenti necessari in una directory chiamata .m2nella cartella dell'utente. Queste dipendenze dovranno essere risolte affinché il progetto possa essere costruito senza errori ed mvn installè un'utilità che potrebbe scaricare la maggior parte delle dipendenze.

Inoltre, ci sono altri programmi di utilità all'interno di Maven come i dependency:resolvequali possono essere utilizzati separatamente in casi specifici. Il ciclo di vita build del mvn è la seguente: LifeCycle Attacchi

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

La fase di test di questo mvn può essere ignorata usando un flag -DskipTests=true.


9
Solo una nota a margine, se si desidera saltare tutti gli obiettivi relativi al test, utilizzare: -Dmaven.test.skip = true (anziché -DskipTests = true)
Manoj Shrestha

Questa risposta non riesce a chiarire che il comando install alla fine installa l'artefatto localmente, cioè nel repository locale.
PeriChandra,

34

Hai esaminato qualcuno dei documenti Maven, ad esempio i documenti del plugin di installazione di Maven ?

Versione in breve: costruirà il progetto e lo installerà nel tuo repository locale.


Supponiamo che tu esegua "mvn install" su una libreria open source. Quindi, esegui "mvn install" su un progetto che utilizza la libreria open source che abbiamo compilato per la prima volta. Quando si esegue "mvn install", verranno prima cercati i JAR nel repository locale? O dipende dal file POM?
Kevin Meredith,

1
@Kevin Dovrebbe andare prima a livello locale, poiché questo è un po 'il punto. Se non si trova nel repository locale, cercherà in tutti i repository configurati (o nelle impostazioni predefinite) e lo installerà nel repository locale se viene trovato. Ho il sospetto che potresti configurarlo per saltare sempre il repository locale, anche se non so come senza cercarlo.
Dave Newton,

17
Hai hai guardato i documenti canonici per Maven? Il sito di Apache spiega così lo scopo di mvn install: "Nella maggior parte dei casi, install: goal install non ha bisogno di alcuna configurazione, ha bisogno del POM del progetto e del file artefatto da installare durante la fase di installazione del ciclo di vita della build predefinito". È perché il documento di Apache non riesce a spiegare cosa fa realmente 'mvn install' che le persone come il poster e io stessi stiamo cercando la risposta. Domanda perfettamente ragionevole.
bethesdaboys l'


6

L' install:installobiettivo è fornito da «Apache Maven Install Plugin»:

Apache Maven Install Plugin

Il plug-in di installazione viene utilizzato durante la fase di installazione per aggiungere artefatti al repository locale. Installa plugin utilizza le informazioni nel POM ( groupId, artifactId, version) per determinare la posizione corretta per il manufatto all'interno del repository locale.

Il repository locale è la cache locale in cui sono archiviati tutti gli artefatti necessari per la compilazione. Per impostazione predefinita, si trova nella home directory dell'utente ( ~/.m2/repository) ma la posizione può essere configurata ~/.m2/settings.xmlusando l' <localRepository>elemento.

- Plugin di installazione di Apache Maven - Introduzione .

Detto questo, lo scopo obiettivo esatto:

install:install viene utilizzato per installare automaticamente l'artefatto principale del progetto (JAR, WAR o EAR), il suo POM e tutti gli artefatti allegati (fonti, javadoc, ecc.) prodotti da un particolare progetto.

- Plugin di installazione di Apache Maven - Introduzione .

Per ulteriori dettagli sull'obiettivo, consultare la pagina di installazione di Apache Maven Plugin - installazione: installazione .

Per ulteriori dettagli sul ciclo di vita della build in generale e su quale posizione ha l'obiettivo nel ciclo di vita della build, fare riferimento alla pagina Maven - Introduzione alla build Lifecycle .


3

Risposta breve

mvn install

  • aggiunge tutti gli artefatti (dipendenze) specificati in pom , al repository locale (da fonti remote).

2

-DskipTests=true è una forma abbreviata di -Dmaven.test.skip=true

Apporta le modifiche in Setting.xml nella cartella .m2 . È possibile utilizzare il collegamento al repository locale in modo che i vasi una volta scaricati non vengano scaricati più e più volte.

<url>file://C:/Users/admin/.m2/repository</url>
 </repository>

0

mvn install i lavori primari sono: 1) Scaricare le dipendenze e 2) costruire il progetto

mentre il lavoro 1 è attualmente curato da ID come intellij (scaricano per qualsiasi dipendenza da POM)

mvn install è ora principalmente utilizzato per il lavoro 2 .

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.