Apache Maven — In breve
Se sei uno sviluppatore Java, le tue attività quotidiane mentre lavori al tuo progetto includono: scrivere il codice, compilare il codice, testare il codice, impacchettarlo sotto forma di un artefatto come un jar o un file war e quindi distribuirlo artefatto a un server web.
Ci sono molte attività di cui devi occuparti manualmente e, ovviamente, puoi automatizzare queste attività utilizzando una libreria chiamata Apache Maven
In questo articolo capiremo cos'è Apache Maven e come puoi usarlo in modo efficace per costruire e gestire i tuoi progetti java
Innanzitutto, cerchiamo di capire i fondamenti di maven
Cos'è Maven?
Maven è uno strumento di gestione dei progetti sviluppato per aiutare a gestire progetti sviluppati utilizzando linguaggi JVM come Java e Scala. Il compito principale degli strumenti di gestione del progetto include,
- Costruire il codice sorgente
- Test del codice sorgente
- Imballaggio in barattolo, guerra o orecchio
- Generazione di documenti Java
- Gestisci le dipendenze
Ora procediamo oltre e vediamo come installare Maven sulla nostra macchina.
- Apri https://maven.apache.org/ nel tuo browser
- Vai alla sezione download e scarica l'ultima cartella zip della versione Maven ed estraila
- Impostare la variabile del percorso di ambiente Add JAVA_HOME e MAVEN_HOME
- Aggiungi il percorso maven nella variabile di ambiente. es: F:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin
Repository esperto:
Maven Repository è una directory di file jar impacchettati con pom.xml. Maven cerca le dipendenze nei repository. Esistono tre tipi di repository Maven.
- Deposito locale
- Deposito centrale
- Deposito remoto
Inoltre, possiamo modificare la posizione del repository locale nel file settings.xml, che si trova in MAVEN_HOME/conf/settings.xml Esempio: E:\apache-maven-3.1.1\conf\settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
</settings>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>e:/mavenlocalrepository</localRepository>
</settings>
Il repository centrale contiene molte librerie comuni che possono essere visualizzate da questo URLhttp://search.maven.org/#browse.
Repository remoto Maven: il repository remoto Maven si trova sul Web. Alcune librerie possono mancare dal repository centrale come la libreria JBoss ecc., quindi è necessario definire un repository remoto nel file pom.xml.
Struttura del progetto Maven:
Ora cerchiamo di capire la struttura del progetto Maven. Quando crei un progetto maven, vedrai una cartella chiamata
- src — source — che è la radice del nostro codice sorgente dell'applicazione e il test unitario dell'applicazione
- src/main/java — che contiene il codice sorgente della nostra applicazione, tutto il codice di produzione che scriviamo nella nostra applicazione si trova all'interno di questa cartella
- src/main/resources — dove memorizziamo tutti i file statici che usiamo nel nostro progetto. esempio application.properties , file XML, file CSV ecc
- Se stai sviluppando un'applicazione web, tutti i file html e javascript verranno inseriti in questa cartella
- src/test/java — qui, dove scriviamo il test unitario e il test di integrazione per la nostra applicazione
- pom.xml — contiene i metadati delle dipendenze del progetto
- target: in questa cartella Maven memorizza tutti i file di classe Java compilati
POM contiene i metadati del progetto ed è anche responsabile della gestione delle dipendenze per configurare i plugin che ci aiutano ad automatizzare molte attività ripetitive, ecco il pom.xml di base
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.maven.application</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
- versione del modello: la versione del modello sarà sempre impostata su 4.0.0 a meno che non la si modifichi con un'altra versione Maven. Ad esempio, versioni superiori alla 3.0
- File pom semplice
- Lima super pom
- File pom efficace
File super pom: puoi trovare il file super pom nella directory di installazione di Maven, nel percorso lib. E all'interno del file jar — maven-model-builder, possiamo trovare un pacchetto chiamato org
File pom efficace: il file pom efficace non è altro che una combinazione di semplici file pom e super pom. È solo un modo per controllare tutte le informazioni dei file pom.xml in un unico posto. Per dare un'occhiata al file pom effettivo, vai al tipo di terminale maven
mvn-help: effective-pom
Maven ha due tipi di dipendenze
- Dipendenza da snapshot: una dipendenza da snapshot indica un progetto che è in fase di sviluppo attivo e che è instabile.
- Dipendenza dal rilascio: una volta che il progetto è completato, viene rilasciato
Possiamo controllare la visibilità della dipendenza Maven utilizzando gli ambiti di dipendenza. Ci sono 5 tipi di ambiti
- Compile: questo è l'ambito predefinito per tutte le dipendenze e le dipendenze contrassegnate con compile sono disponibili all'interno del classpath del progetto
- Fornito: una dipendenza che ha fornito l'ambito verrà fornita in fase di esecuzione da jdk o dal server web
- Runtime: come suggerisce il nome, la dipendenza contrassegnata con runtime è disponibile solo in fase di esecuzione ma non in fase di compilazione.
- Test: queste dipendenze sono disponibili solo al momento della scrittura e dell'esecuzione del test.
- Ambito di sistema: è simile all'ambito fornito, ma l'unica differenza è che abbiamo menzionato esplicitamente dove possiamo trovare la dipendenza nel sistema. Invece di JDK o server Web che forniscono questa dipendenza in fase di esecuzione, forniamo il percorso di sistema in cui Maven può trovare questa dipendenza. Possiamo fornire il percorso utilizzando il percorso di sistema
Il ciclo di vita della build Maven è suddiviso in 3 diverse fasi:
- Predefinito: come parte di questo passaggio, l'esperto esegue molte attività,
- maven legge pom.xml e convalida se abbiamo un xml valido o meno.
- Quindi Maven compilerà il nostro codice sorgente e creerà i file di classe e li memorizzerà nella cartella di destinazione.
- Quindi nella fase di test, come parte del test, Maven esegue il test unitario all'interno del progetto.
- pacchetto — come parte del pacchetto, maven impacchetta il codice sorgente in un artefatto di nostra scelta come file jar o war o ear o zip
- test di integrazione — se il nostro progetto contiene test di integrazione e viene eseguito
- verificare: maven controlla che il test di integrazione, che viene eseguito nella fase precedente, abbia esito positivo o negativo
- install — maven installerà il pacchetto creato nel repository locale
- deploy — dopo l'installazione maven verrà distribuito in un repository remoto.
2. Clean: questo passaggio è principalmente responsabile della pulizia delle classi Java compilate o dei metadati generati. Esempio: mvn installazione pulita
3. Sito: è responsabile della generazione della documentazione java presente all'interno del nostro progetto.
Maven semplifica il processo di compilazione in modo molto avanzato. Spero che tu abbia imparato e ottenuto alcuni punti da capire su Apache Maven.
Grazie per aver letto l'articolo. Si prega di applaudire, condividere e commentare. mi incoraggerà a scrivere più articoli simili. Condividi i tuoi preziosi suggerimenti, apprezzo il tuo feedback onesto!!!
Domanda di intervista basata sul flusso Java8 più frequente - Parte 1 Il modo più semplice per accedere a un database in JAVA Cattura più eccezioni nella codifica Java: trova l'ennesimo numero di Fibonacci in JavaScript Python spiegato
![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































