Maven Guida parte 1 ( Command Line / pom.xml )

MAVEN Guida parte 1 ( Command Line / pom.xml )

In questa guida impareremo ad utilizzare le funzionalità base di Maven interagendo da terminale.

-> COSA E’ MAVEN

Maven è un software open source sviluppato da Apache, con Maven possiamo organizzare in modo “facile” ed efficiente tutte le fasi di un progetto java, i vantaggi del suo utilizzo sono :

  •  Standardizzazione della struttura di un progetto compilazione
  •  Test ed esportazione automatizzati
  • Gestione e download automatici delle librerie necessarie al progetto tramite le dipendenze
  • Creazione automatica di un semplice file di gestione del progetto contenente le informazioni

-> INSTALLAZIONE

( Procedura superflua se si intende usare Maven esclusivamente da Eclipse )

Indipendentemente dal sistema operativo, controllare che la variabile di sistema JAVA_HOME sia impostata nel modo corretto e che in particolare abbiate istallata la versione di java adatta alla versione di Maven che volete installare

Maven 3.3+ requires JDK 1.7+ 
Maven 3.2 requires JDK 1.6+ 
Maven 3.0/3.1 requires JDK 1.5+

Per visualizzare il contenuto della variabile JAVA_HOME da command line :

Windows : echo %JAVA_HOME%

Unix : echo $JAVA_HOME

L’output dovrebbe essere qualcosa del genere a uno di questi :

“C:\Program Files\Java\jdk1.7.0_51”

“/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home”

Se tutto è ok, possiamo procedere col download di Maven, scarichiamo da qui la versione e tipo di archivio che più ci aggrada quindi scompattiamo.

Ora dobbiamo creare la variabile di sistema PATH che ci permetterà di usare Maven da linea di comando

Windows :

Selezionare la scheda “Avanzate”, poi “Variabili d’ambiente”.

Quindi aggiungere o selezionare la variabile PATH.

editare con il percorso del bin nella cartella di Maven scompattata.

es:  C: \ Programmi \ apache-maven-3.6.0 \ bin

Unix :

Digitare da comand line :

export PATH=/opt/apache-maven-3.6.0/bin:$PATH

Per verificare la corretta installazione , digitare su linea di comando :

mvn -version

Se tutto è andato bene, l’output sarà un qualcosa del tipo:

Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_181, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “4.13.0-45-generic”, arch: “amd64”, family: “unix”

Verifica se Maven home, Java home risultano correttamente settati nel tuo output.

-> Cosa sapere per iniziare ?

Per iniziare ad usare Maven è importante conoscere quali sono le componenti principali del software :

  • Pom.xml : è un file di configurazione, contiene tutte le informazioni sul progetto tra cui dipendenze, passaggi di compilazione, test. (vedremo in questa guida)
  • Goal : sono funzioni che possono essere eseguite sul progetto.
  • Plug-in : sono come i Goal solo che non sono di standard in Maven.
  • Repository : è la directory per le librerie.

Quando Maven compila per la prima volta un progetto con delle nuove librerie indicate nel pom.xml, provvede a scaricare le dipendenze nella repository locale così da velocizzare i tempi per la prossima compilazione.

-> POM ( Project Object Model )

Questo file XML contiene informazioni sul progetto e dettagli di configurazione utilizzati da Maven per effettuare la build.

Contiene valori predefiniti delle variabili di progetto, ad esempio per la directory delle build che è settata con ” relativo_path / target”.

Quando si esegue un task o un goal, Maven cerca il POM nella directory principale del progetto quindi lo legge per ottenere le informazioni di configurazione necessarie ed esegue i task/goal. Alcuni dei settaggi che possono essere specificati attraverso il POM sono le dipendenze del progetto, i plugin o i goal che devono essere eseguiti, i profili di build e molto altro.

questa è la parte nel POM che serve ad identificare univocamente il progetto :

<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
<packaging>jar</packaging>
</project>

Il tag ” packaging “ è opzionale ovvero se non viene inserito viene impostato di default con ” jar “.

All’interno del POM tra le varie cose che è possibile specificare, si può indicare la struttura del package, ad esempio se volessimo creare un jar eseguibile, possiamo impostare quale debba essere la Main class :

<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>TestKafka.StreamingJobConsumer</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

<plugins>

Il contenuto compreso tra i tag ” dependecies ” è dove si indicano le dipendenze ( dependency ) che identificano le librerie all’interno della repository :

<dependencies>
….
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>
….
</dependencies>

Ad esempio se volessimo aggiungere all’interno del nostro progetto java le librerie OJDBC ( Oracle Java DataBase Connectivity ) ci basterà andare su mvnrepository, cercare OJDBC, selezionare la libreria quindi selezionare la versione e copiare tra i tag “dependecies” del nostro pom.xml il contenuto nella sezione Maven della pagina di mvnrepository ( la prima riga e opzionale), per illustrare :

<dependencies>
….
<dependency>
<groupId>MavenExample</groupId>
<artifactId>maven-archetype-quickstart</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>test</scope>
<optional>true</optional>
</dependency>

  <dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc7</artifactId>
  <version>12.1.0.2</version>
   </dependency>

….
</dependencies>

Aggiornare la versione della JRE

Per indicare quale JVM volete utilizzare per il vostro progetto bisogna aggiungere nel file pom.xml queste proprietà:

<project>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

</project>

Per altre info sul file POM consultare la Doc ufficiale .

->Comandi base da command line

Creare un progetto

Per creare un nuovo progetto Maven scrivere su riga di comando :

mvn archetype:create -DgroupId=it.mavenFirstSteps -DartifactId=MavenExample -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0

Cosi creeremo ( archetype:create ) il progetto di nome ” MavenExample ” con groupId   “it.mavenFirstSteps “, il campo di DarchetypeArtifactId serve per indicare e generare il tipo di scheletro iniziale del progetto cioè le cartelle e i file da cui sarà composto il nostro nuovo progetto mentre allo stesso modi di ” DgroupId ” e ” DartifactId” il campo ” Dversion ” è arbitrario, indica la versione del progetto.

Qui una Lista archetype artifacts

Compilare

All’interno della directory del progetto digitare su linea di comando :

mvn clean compile

“Compile” è il comando per compilare , mentre , ” Clean ” ( può essere omesso ) viene utilizzato quando si desidera rimuovere i file generati in fase di compilazione nella directory di un progetto.

Poi potremmo eseguire come un normale progetto java :

java com.Package.App

Creare Package

All’interno della directory del progetto se digitiamo da riga di comando :

mvn package

Creeremo il package del nostro progetto con Maven, il jar risultato dell’operazione verrà scritto nella cartella target.

Import in Eclipse

All’interno della directory del progetto se digitiamo da riga di comando :

mvn eclipse:eclipse

Permetteremo ad Eclipse di poter importare il progetto nel suo workspace ( passo non necessario se il progetto maven viene creato da Eclipse) .

->FINE PARTE 1

Si conclude qui questa prima introduzione, abbiamo visto come creare/compilare un progetto e come utilizzare alcune parti del file pom.xml, presto pubblicheremo le altre parti della guida.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *