CodeGym /Java Blog /Random-IT /Parte 4. Le basi di Maven
John Squirrels
Livello 41
San Francisco

Parte 4. Le basi di Maven

Pubblicato nel gruppo Random-IT
Questo materiale fa parte della serie "Introduzione allo sviluppo aziendale". Articoli precedenti: Parte 4. Le basi di Maven - 1Maven è uno strumento per la gestione e la creazione di progetti: l'utile assistente di un programmatore Java. Semplifica la vita degli sviluppatori in ogni fase del lavoro: dalla creazione della struttura del progetto e dal collegamento delle librerie necessarie alla distribuzione del prodotto sul server. Dovrai usare Maven quando lavori con qualsiasi framework. Quindi, oggi diamo un'occhiata alle sue funzioni principali e vediamo come usarle.

Installazione dettagliata di Maven

  1. Innanzitutto, dobbiamo installare Maven. Scaricalo da questo link .

  2. Successivamente, decomprimere l'archivio scaricato e impostare la variabile di ambiente M2_HOME nella posizione dell'archivio decompresso. Ad esempio, C:\\Programmi\\maven\\

  3. Per assicurarti che tutto sia installato, esegui quanto segue sulla riga di comando:

    mvn -versione

  4. Se vengono visualizzate le informazioni sulla versione per Maven, Java, ecc., allora tutto è pronto.

  5. Ora apri IntelliJ IDEA e crea un nuovo progetto. Nella prima finestra, seleziona Maven:

    Parte 4. Le basi di Maven - 2
  6. Fai clic su "Avanti" e compila la finestra che appare:

    Parte 4. Le basi di Maven - 3
  7. Quindi, come al solito, crea un progetto dove vuoi.

    Dopo che il progetto è stato creato, prendi nota della sua struttura:

    Parte 4. Le basi di Maven - 4
Questa è la struttura standard di un progetto Maven :
  • la cartella src/main/java contiene le classi Java
  • la cartella src/main/resources contiene le risorse utilizzate dall'applicazione (pagine HTML, immagini, fogli di stile, ecc.)
  • la cartella src/test è per i test
Prestare attenzione anche al file chiamato pom.xml . Questo è il file principale per la gestione di Maven . L'intera descrizione del progetto è contenuta qui. Non ci sono molte informazioni al momento, ma le aggiungeremo ora.

Gestione delle dipendenze in Maven

Potresti esserti imbattuto nella frase "gestore delle dipendenze". Maven sa come gestire le dipendenze. Grazie a Maven, non devi perdere molto tempo a cercare in Internet una libreria richiesta, scaricarla e quindi collegarla al tuo progetto. Invece, aggiungi semplicemente la libreria richiesta all'elenco delle dipendenze in Maven.

Le dipendenze sono specificate nel nodo delle dipendenze del file pom.xml

Supponiamo che tu abbia bisogno della libreria Apache Commons IO nel tuo progetto per semplificare il lavoro con i file. Per aggiungere una libreria, scriviamo cinque righe in pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Ora il tuo file pom.xml dovrebbe assomigliare a questo:

  <?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Successivamente, consenti a IntelliJ IDEA di importare la dipendenza (dovrebbe essere visualizzata una finestra di dialogo nell'angolo in basso a destra). Ora la libreria è pronta per l'uso:

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Anche tutte le dipendenze successive devono essere scritte all'interno del <dependencies>tag. Ti starai chiedendo come trovare le informazioni sulla libreria che devi indicare all'interno del <dependency>tag. Questo è facile. Devono essere sempre impostati tre parametri: "groupId", "artifactId" e "version". Esistono due modi per determinare questi parametri:
  1. Sul sito web della biblioteca. Se abbiamo bisogno della libreria Apache Commons IO, andiamo sul sito Web ufficiale e selezioniamo la scheda "Informazioni sulle dipendenze". Tutte le informazioni necessarie sono qui : puoi semplicemente copiarle e aggiungerle al <dependencies>nodo.

  2. In un repository Maven . Inserisci "apache commons io" nella barra di ricerca e vedrai tutte le versioni disponibili della libreria. Dopo aver selezionato quello corretto, è sufficiente copiare quanto segue:

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    e aggiungilo al tuo pom.xml.

Tipi di repository Maven

Vale la pena menzionare nuovamente i repository Maven, perché in realtà ne abbiamo due: un repository remoto (centrale) e un repository locale (sul tuo computer). Tutte le librerie che aggiungi ai tuoi progetti vengono salvate nel repository locale. Quando Maven aggiunge una dipendenza richiesta a un progetto, controlla innanzitutto se la libreria esiste già nel repository locale. Accede al repository remoto solo se non trova la libreria in locale. Come puoi vedere, puoi usare Maven per aggiungere dipendenze, ma non è tutto ciò che può fare.

Costruire un progetto Java usando Maven

Questa capacità può sembrare inutile per un principiante. Perché ne abbiamo bisogno se abbiamo un IDE? Lasciatemi spiegare. Innanzitutto, il server su cui devi creare la tua applicazione potrebbe non avere né un ambiente di sviluppo né un'interfaccia grafica. In secondo luogo, su progetti di grandi dimensioni, Maven fa un lavoro migliore nella costruzione del progetto. Quindi, senza ulteriori indugi, considereremo il processo di creazione di un'applicazione utilizzando Maven.

Fasi

Il processo di creazione di un'applicazione è noto come ciclo di vita di un progetto Maven ed è costituito da fasi. Puoi guardarli in IDEA facendo clic su Maven > esempio > Ciclo di vita nell'angolo in alto a destra: Parte 4. Le basi di Maven - 5Come puoi vedere, ci sono 9 fasi:
  1. clean: rimuove tutti i file compilati dalla directory di destinazione (il luogo in cui vengono salvati gli artefatti finiti)
  2. validate — controlla se sono presenti tutte le informazioni richieste per costruire il progetto
  3. compile — compila i file di codice sorgente
  4. test — avvia i test
  5. pacchetto — pacchetti di file compilati (in un archivio JAR, WAR, ecc.)
  6. verifica — controlla se il file compresso è pronto
  7. install — posiziona il pacchetto nel repository locale. Ora può essere utilizzato da altri progetti come libreria esterna
  8. site — crea la documentazione del progetto
  9. deploy — copia l'archivio creato nel repository remoto
Tutte le fasi vengono eseguite in sequenza: ad esempio, la quarta fase non può essere avviata fino al completamento delle fasi 1-3. Ci sono due modi per iniziare una fase:
  • attraverso la riga di comando:

    pacchetto mvn

    Parte 4. Le basi di Maven - 6
  • utilizzando IntelliJ IDEA:

    Parte 4. Le basi di Maven - 7

    Prima dell'inizio della fase del pacchetto, vengono eseguite le fasi di convalida, compilazione e test. La fase pulita è un'eccezione. È una buona idea eseguire questa fase prima di ogni compilazione del progetto. Puoi elencare più fasi, separandole con spazi:

    mvn pacchetto pulito.

Inoltre, ogni fase ha fasi pre e post: ad esempio, pre-distribuzione, post-distribuzione, pre-pulizia, post-pulizia, ecc., ma vengono utilizzate abbastanza raramente. Inoltre, ogni fase ha degli obiettivi. Gli obiettivi standard sono impostati per impostazione predefinita. Ulteriori obiettivi vengono aggiunti dai plug-in Maven. A volte durante una fase, potrebbe essere necessario eseguire funzioni aggiuntive. Ci sono plugin Maven per questo. Un elenco di plug-in ufficiali è disponibile sul sito Web di Maven . Ma dovresti sapere che ci sono molti plugin personalizzati che possono essere trovati su siti Web di terze parti. E, naturalmente, se si presenta qualche esigenza esotica, puoi sempre scrivere tu stesso un plug-in personalizzato .

Plugin

Per aggiungere un plugin Maven al progetto, dobbiamo aggiungere la sua descrizione al file pom.xml, usando <build>e <plugins>tag, in modo simile a come abbiamo aggiunto le dipendenze. Ad esempio, supponiamo di aver bisogno di un plug-in per verificare che stiamo utilizzando l'ultima versione di tutte le nostre librerie esterne. Dopo un po' di ricerche su Internet, potresti trovare questo plugin e le istruzioni su come usarlo. Impostiamo groupId, artifactId e version. Indicheremo quali obiettivi deve raggiungere il plugin e in quale fase. Nel nostro caso, il controllo delle dipendenze nell'attuale pom.xml è impostato per avvenire durante la fase di convalida. Ora il nostro file pom.xml ha questo aspetto:

<?xml version="1.0" encoding="UTF-8"?>
<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>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Potremmo continuare a lavorare al nostro progetto. Ma proviamo a cambiare la versione di Apache Commons IO in 2.0 e costruire il progetto. Otterremo

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Qui abbiamo un errore di compilazione generato dal plugin. Il messaggio di errore indica che stiamo utilizzando la versione 2.0 quando la versione 2.6 è disponibile. Fondamentalmente, Maven è uno strumento molto utile. Forse all'inizio sembrerà difficile da usare, ma esercitati! Crea i tuoi progetti usando Maven e dopo un po' sarai molto soddisfatto del risultato finale. Questo articolo ha deliberatamente omesso molti dettagli su Maven: ci siamo concentrati sull'essenziale. Ma non c'è limite al miglioramento: puoi leggere di più su Maven sul suo sito ufficiale . Parte 5. Servlet e Java Servlet API. Scrivere una semplice applicazione web Parte 6. Contenitori servlet Parte 7. Introduzione al pattern MVC (Model-View-Controller)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION