JavaRush /Java Blog /Random-IT /Parte 4: Nozioni di base su Maven

Parte 4: Nozioni di base su Maven

Pubblicato nel gruppo Random-IT
Questo materiale fa parte della serie "Introduzione allo sviluppo aziendale". Articoli precedenti: Parte 4. Nozioni di base su Maven - 1Maven è uno strumento per la gestione e la costruzione di progetti: un vero assistente per il programmatore Java. Semplifica la vita allo sviluppatore in tutte le fasi del lavoro: dalla creazione della struttura del progetto e il collegamento delle librerie necessarie alla distribuzione del prodotto sul server. Quando lavori con qualsiasi framework, dovrai utilizzare Maven. Vediamo quindi oggi le sue funzioni principali e vediamo come dovrebbero essere utilizzate.

Installazione passo passo di Maven

  1. Per prima cosa devi installare Maven scaricandolo da questo link .

  2. Successivamente, è necessario decomprimere l'archivio scaricato e impostare la variabile di ambiente M2_HOME su un collegamento alla posizione dell'archivio decompresso. Ad esempio, C:\Programmi\maven\

  3. Per verificare che sia tutto installato scrivere sulla riga di comando:

    versione mvn

  4. Se vengono visualizzate le informazioni sulla versione di Maven, Java, ecc., sei pronto per iniziare.

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

    Parte 4. Nozioni di base su Maven - 2
  6. Fare clic su Avanti e compilare la seguente finestra di dialogo:

    Parte 4. Nozioni di base su Maven - 3
  7. Successivamente, crea un progetto nella posizione richiesta come standard.

    Dopo che il progetto è stato creato, prestare attenzione alla sua struttura:

    Parte 4. Nozioni di base su Maven - 4
Questa è la struttura standard per un progetto Maven :
  • la cartella src/main/java contiene le classi Java;
  • in src/main/resources - risorse utilizzate dalla nostra applicazione (pagine HTML, immagini, fogli di stile, ecc.);
  • src/test - per i test.
Presta 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 ancora molte informazioni, ma le aggiungeremo ora.

Gestione delle dipendenze in Maven

Potresti esserti imbattuto nella frase "gestore delle dipendenze" o "gestore delle dipendenze". Maven può fare tutto. Grazie a Maven, non è necessario perdere molto tempo a cercare la libreria richiesta su Internet, scaricarla e quindi collegarla al progetto: basta aggiungere quella richiesta all'elenco delle dipendenze di Maven. Le dipendenze vengono scritte nel nodo XML delle dipendenze. Supponiamo che tu abbia bisogno della libreria Apache Commons IO nel tuo progetto per lavorare in modo semplificato con i file. Per aggiungere una libreria, scrivi cinque righe in pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Il tuo pom.xml ora 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 apparire 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 dovrebbero essere scritte all'interno del tag <dependencies>. Forse ti starai chiedendo: come fai a sapere quali informazioni devi includere su una libreria all'interno del tag <dependency>? Tutto è semplice qui. In questi casi vengono sempre specificati tre parametri: groupId, artifactId e versione. Puoi scoprire questi parametri in due modi:
  1. Sul sito della biblioteca. Se abbiamo bisogno di Apache Commons IO, vai al sito Web ufficiale e seleziona la scheda Informazioni sulle dipendenze. Tutte le informazioni necessarie sono qui : puoi semplicemente copiarle e aggiungerle alla nostra sezione delle dipendenze.

  2. Nel repository Maven . Inserisci "apache commons io" nella ricerca e vedrai tutte le versioni disponibili della libreria. Dopo aver selezionato quello che ti serve, copia semplicemente:

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

    e aggiungi al tuo pom.xml.

Tipi di repository Maven

Vale la pena menzionare nuovamente il repository Maven, perché in realtà ne abbiamo due: esterno (globale) e 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 prima la presenza di tale libreria nel repository locale e, solo se non la trova lì, passa a quello esterno. Come puoi vedere, puoi utilizzare Maven per aggiungere dipendenze, ma non è tutto ciò che può fare.

Costruire un progetto Java utilizzando Maven

Questa funzione può sembrare inutile per un principiante. Perché è necessario se esiste un IDE? Ma no! In primo luogo, il server su cui dovrai realizzare l'applicazione potrebbe non solo non avere un ambiente di sviluppo, ma anche un'interfaccia grafica. In secondo luogo, nei progetti di grandi dimensioni, Maven affronta meglio i compiti di assemblaggio del progetto. Pertanto, non tormentiamoci con l'attesa, ma consideriamo il processo di creazione di un'applicazione utilizzando Maven.

Fasi

Il processo di creazione di un'applicazione è chiamato ciclo di vita di un progetto Maven ed è costituito da fasi. Puoi guardarli in IDEA cliccando su Maven>esempio>Ciclo di vita nell'angolo in alto a destra: Parte 4. Nozioni di base su 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. convalidare: verificare se tutte le informazioni sono disponibili per la costruzione del progetto;
  3. compile: i file con il codice sorgente vengono compilati;
  4. test: vengono avviati i test;
  5. pacchetto: i file compilati vengono impacchettati (in archivi jar, war, ecc.);
  6. verificare: vengono eseguiti controlli per confermare la disponibilità del file compresso;
  7. install: il pacchetto viene inserito nel repository locale. Ora può essere utilizzata da altri progetti come libreria esterna;
  8. sito: viene creata la documentazione del progetto;
  9. deploy: l'archivio raccolto viene copiato in un repository remoto.
Tutte le fasi vengono eseguite in sequenza: non è possibile iniziare, ad esempio, la quarta fase finché non vengono completate le fasi 1-3. Esistono due modi per avviare una fase:
  • tramite riga di comando:

    pacchetto mvn

    Parte 4. Nozioni di base su Maven - 6
  • utilizzando Intellij IDEA:

    Parte 4. Nozioni di base su Maven - 7

    Prima del lancio del pacchetto vengono eseguite le fasi di convalida, compilazione e test. L'eccezione è la fase pulita. Si consiglia di richiamarlo prima di ogni realizzazione di un nuovo progetto. Le fasi possono essere elencate separate da spazi:

    pacchetto mvn pulito.

Inoltre, ogni fase ha fasi pre e post: ad esempio pre-distribuzione, post-distribuzione, pre-pulizia, post-pulizia, ma vengono utilizzate abbastanza raramente. Inoltre, ogni fase ha degli obiettivi. Gli obiettivi standard sono inclusi per impostazione predefinita, altri vengono aggiunti dai plugin Maven. A volte durante alcune fasi è necessario eseguire funzionalità aggiuntive. Ci sono plugin Maven per questo. L'elenco dei plugin ufficiali può essere trovato sul sito web di Maven . Ma sappi che ci sono ancora molti plugin personalizzati che puoi trovare su risorse di terze parti. Naturalmente, se c'è qualche necessità esotica, hai sempre la possibilità di scrivere tu stesso un plugin del genere .

Plugin

Per aggiungere un plugin Maven a un progetto, la sua descrizione, simile alle dipendenze, deve essere inserita in pom.xml nei tag <build> e <plugins>. Ad esempio, abbiamo bisogno di un plugin per verificare che tutte le nostre librerie esterne utilizzino le versioni più recenti. Dopo una piccola ricerca su Internet, puoi trovare questo plugin con le istruzioni per l'uso. Impostiamo il groupId, l'artifactId e la versione. Scriviamo quali obiettivi deve raggiungere e in quale fase. Nel nostro caso, il controllo delle dipendenze nell'attuale pom.xml è impostato sulla fase di convalida. Ora la nostra “memoria” è simile a questa:
<?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>
Possiamo ancora continuare a lavorare sul nostro progetto. Ma proviamo a cambiare la versione di Apache Commons IO alla 2.0 e ad iniziare a costruire il progetto. Otteniamo: [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 causato dal plugin. Il messaggio di errore indica che stiamo utilizzando la versione 2.0 quando è disponibile la 2.6. In generale, Maven è uno strumento molto utile. All'inizio può sembrare difficile da usare, ma fai pratica, crea i tuoi progetti con Maven e dopo un po' sarai molto soddisfatto del risultato. Questo articolo ha deliberatamente omesso molti dettagli su Maven: ci siamo concentrati sull'essenziale. Ma non c’è limite alla perfezione: puoi leggere di più su Maven sul sito ufficiale del prodotto . Parte 5. Servlet. Scrittura di una semplice applicazione web Parte 6. Contenitori servlet Parte 7. Presentazione del pattern MVC (Model-View-Controller) Parte 8. Scrittura di una piccola applicazione spring-boot
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION