Cos`è Maven? Maven è un software usato principalmente per la
by user
Comments
Transcript
Cos`è Maven? Maven è un software usato principalmente per la
Cos’è Maven? Maven è un software usato principalmente per la gestione di progetti Java e build automation, ma è utile anche per gestire documentazione, report, dipendenze... Cosa è importante: • pom.xml (POM, Project Object Model): è indispensabile per il corretto utilizzo di Maven. Rappresenta il file di configurazione che contiene i dettagli di un progetto (dipendenze, struttura, plugin,...); • Goal: singola funzione che può essere eseguita sul progetto. • Plug-in: goal riutilizzabili in tutti i progetti; • Repository: directory strutturata destinata alla gestione delle librerie. Un repository può essere locale o remoto. Il repository può essere definito nel pom del progetto o nel settings generale POM (PROJECT OBJECT MODEL) Tale file è composto da: <modelVersion> settiamolo sempre a 4.0.0 <groupId> gruppo associato al progetto. Questo valore è del tutto personale, può essere del tipo «it.jpinup» <artifactId> ID del progetto. Ad esempio «jpinup» <version> Versione del progetto <packaging> il tipo di pacchetto che si vuole avere, i tipi presenti di default sono war, jar o ear ma possiamo averne altri (esb) POM - Dependency La gestione delle dipendenze è una delle caratteristiche di Maven. Quando si ha bisogno di gestire le dipendenze di un singolo progetto è semplice, ma quando ci sono più moduli il compito di Maven diventa importante. Di seguito il blocco di tag per definire le dipendenze <dependencies> <dependency> <groupId>group</groupId> <artifactId>artifact</artifactId> <version>1.0</version> </dependency> </dependencies> POM – Dependency Management Quando abbiamo tanti moduli da gestire, che sono interdipendenti tra di loro, o che hanno dipendenze in comune, possiamo creare un modulo generico, che contiene la definizione delle dipendenze con la versione. <dependencyManagement> <dependencies> <dependency> <groupId>test</groupId> <artifactId>a</artifactId> <version>1.2</version> </dependency> </dependencyManagement> POM – Scope <dependency> <groupId>test</groupId> <artifactId>a</artifactId> <version>1.2</version> <scope>runtine</scope> </dependency> Per ogni dipendenza è possibile anche definire uno scope: compile (default) – le dipendenze sono disponibili in tutti i classpath del progetto provided – è simile a compile, ma prevede che a runtime le dipendenze siano rese disponibili dall’ambiente di esecuzione runtime – le dipendenze sono richieste solo in esecuzione test – le dipendenze sono richieste solo per la compilazione e l’esecuzione dei test system – la dipendenza non viene recuperata tramite repository, ma ne viene esplicitamente dichiarata la posizione locale Maven – Goal Un goal è una singola funzione che può essere eseguita sul progetto. Vediamo i tipi di goal: •clean: che permette di cancellare i compilati dal progetto; •compile: che permette di compilare i file sorgenti; •deploy: che permette di depositare il pacchetto generato nel repository remoto; •install: che permette di depositare il pacchetto generato nel repository locale; •site: che permette di generare la documentazione del progetto; •archetype: che permette di generare la struttura di un progetto a partire da un template. Maven - istruzioni Possiamo eseguire istruzioni maven da un IDE (tipo Eclipse con RunAS->Maven Build) o direttamente dal prompt dei comandi una volta configurato Maven. Un esempio da prompt mvn clean package cancella i compilati del progetto e ricompila creando il pacchetto desiderato (definito nel pom come packaging) Maven – da Eclipse Dopo aver fatto tasto destro sul progetto -> Run As -> Maven Build. Vediamo le opzioni Goals: i goal già descritti Offline: ignora repository remoti, ma cerca le dipendenze nel locale Skip Tests: evita di eseguire i test, se previsti Resolve Workspace artifacts: se sono presenti dipendenze che sono progetti presenti nel workspace, prende questi in considerazione invece cercarle nei repository Maven – Installazione Dopo aver fatto la panoramica di Maven, passiamo all’installazione, facendo riferimento a https://maven.apache.org/install.html 1) 2) 3) 4) Scaricare la versione di Maven desiderata (in Eclipse è già Embedded) Estrarre lo zip Copiare il path fino alla directory bin Variabili d’ambiente 1) Windows: Aggiungere questo path nella variabile d’ambiente PATH (Start->tasto destro su computer->Advanced system settings (impostazioni di sistema avanzate) Environment Variables (Variabili d’ambiente)-> su System Variable selezionare PATH-> Edit (Modifica) ->aggiungere il path copiato al punto 3 2) Linux: export PATH=<path copiato>:$PATH 5) Il repository locale di default è C:\Documents and Settings\${user}\.m2\repository o /home/${user}/.m2/repository Autore: Ezio Tomassetti