Scarica PDF

Transcript

Scarica PDF
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