Pré-requis
Être à l'aise dans la manipulation et l'installation de logiciel dans le système de votre choix. Dans cet article nous utilisons UBUNTUInstallation
Installer MAVEN sur votre système. Par exemple pour UBUNTU "sudo apt-get install maven". Maven utilise Java (java doit donc être installé aussi)Si vous souhaiter utiliser la dernière version de maven, et c'est ce que nous vous conseillons, choisissez l'installation "manuelle¨
Télécharger la dernière version ici
Décompresser l'archive dans /opt par exemple
Ajouter le répertoire bin de maven au PATH du système.
Dans notre environnement nous avons ajouté "export PATH=$PATH:/opt/apache-maven-3.3.3/bin/" a la fin du fichier .bashrc
Ouvrir un nouveau terminal et Verifier l'installation
mvn --version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T14:57:37+03:00)
Maven home: /opt/apache-maven-3.3.3
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux", version: "3.19.0-30-generic", arch: "amd64", family: "unix"
Création du premier projet
Voici la commande magique
mvn archetype:generate -DgroupId=net.cofares.app -DartifactId=tuto-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Après un certain nombre de "download" et de configuration automatique. Le projet est prêt. Verifions:
Trace sans les DONLOAD
mvn archetype:generate -DgroupId=net.cofares.tuto -DartifactId=appNo1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: net.cofares.tuto
[INFO] Parameter: packageName, Value: net.cofares.tuto
[INFO] Parameter: package, Value: net.cofares.tuto
[INFO] Parameter: artifactId, Value: appNo1
[INFO] Parameter: basedir, Value: /home/pascalfares
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /home/pascalfares/appNo1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.397 s
[INFO] Finished at: 2015-10-18T10:31:03+03:00
[INFO] Final Memory: 17M/158M
[INFO] ------------------------------------------------------------------------
et voici ce qui a été créé
cd appNo1/
pascalfares@Sleekbook:~/appNo1$ ls
pom.xml src
pascalfares@Sleekbook:~/appNo1$ ls -R
.:
pom.xml src
./src:
main test
./src/main:
java
./src/main/java:
net
./src/main/java/net:
cofares
./src/main/java/net/cofares:
tuto
./src/main/java/net/cofares/tuto:
App.java
./src/test:
java
./src/test/java:
net
./src/test/java/net:
cofares
./src/test/java/net/cofares:
tuto
./src/test/java/net/cofares/tuto:
AppTest.java
Le POM
Le pom est le fichier essentiel d'un projet MAVEN voici le fichier pom de notre projet
more pom.xml
<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/
maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.cofares.tuto</groupId>
<artifactId>appNo1</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>appNo1</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Qu'avons nous fait?
Vous avez exécuté le but (objectf) archetype:generate, et passé différents paramètres à cet objectif. Le préfixe archetype est le 'plugin' qui contient l'objectif. Si vous êtes familier avec Ant, vous pouvez concevoir cela comme similaire à une tâche. Ce but a créé un projet simple basée sur un archétype. Qu'il suffise de considérer pour l'instant qu'un 'plugin' est une collection de buts avec un but commun général.
Construisons maintenant le résultat (générer l'executable)
mvn package
Cette fois ci nous exécutons une phase de packaging, qui va produire le logiciel au format de packaging correspondant au archetype de notre projet.
Une phase est une étape dans le cycle de vie de la construction, qui est une séquence ordonnée de phases. Lorsqu'une phase est donnée, Maven exécute toutes les étapes dans l'ordre jusqu'à et y compris celle définie.
Le logiciel est prêt essayons le :
java -cp target/appNo1-1.0-SNAPSHOT.jar net.cofares.tuto.App
Hello LJUG!