Utilisation de Maven pour la gestion de projet
Dans cette étape, vous allez apprendre à utiliser Apache Maven pour gérer votre projet Java. Maven est un outil puissant d'automatisation de build et de gestion des dépendances qui simplifie la configuration et la maintenance des projets.
Comprendre Maven
Maven offre :
- Une structure de projet standard
- Une gestion des dépendances
- Une automatisation du build
- Une gestion des informations sur le projet
- Un processus de build cohérent entre les projets
Configuration d'un projet Maven
Créons un nouveau projet en utilisant Maven :
- Tout d'abord, vérifiez si Maven est installé :
mvn --version
Vous devriez voir une sortie similaire à celle-ci :
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.18, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-1036-azure", arch: "amd64", family: "unix"
- Accédez à votre répertoire de projet :
cd /home/labex/project
- Créez un nouveau projet Maven en utilisant un archetype (un modèle de projet) :
mvn archetype:generate \
-DgroupId=com.example.calculator \
-DartifactId=simple-calculator \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.4 \
-DinteractiveMode=false
Cette commande créera un nouveau projet avec une structure de répertoire standard.
- Examinez la structure du projet :
cd simple-calculator
ls -la
Vous devriez voir une sortie similaire à :
total 24
drwxr-xr-x 4 labex labex 4096 ... .
drwxr-xr-x 6 labex labex 4096 ... ..
-rw-r--r-- 1 labex labex 174 ... .gitignore
-rw-r--r-- 1 labex labex 720 ... pom.xml
drwxr-xr-x 4 labex labex 4096 ... src
Le fichier clé ici est pom.xml
(Project Object Model), qui définit la configuration du projet.
- Examinez la disposition standard des répertoires Maven :
find src -type d
Vous devriez voir :
src
src/main
src/main/java
src/main/java/com
src/main/java/com/example
src/main/java/com/example/calculator
src/test
src/test/java
src/test/java/com
src/test/java/com/example
src/test/java/com/example/calculator
Voici la disposition standard des répertoires Maven :
src/main/java
: Code source
src/main/resources
: Fichiers de ressources
src/test/java
: Code de test
src/test/resources
: Ressources de test
- Examinons le fichier
App.java
généré :
cat src/main/java/com/example/calculator/App.java
Vous devriez voir une simple classe "Hello World" :
package com.example.calculator;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
Amélioration du projet Maven
Améliorons notre projet de calculatrice en ajoutant plus de classes :
- Créez un nouveau fichier appelé
Calculator.java
dans src/main/java/com/example/calculator/
:
package com.example.calculator;
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public double divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Cannot divide by zero");
}
return (double) a / b;
}
}
- Maintenant, modifiez le fichier
App.java
existant pour utiliser notre classe Calculator :
package com.example.calculator;
/**
* Simple Calculator Application
*/
public class App
{
public static void main( String[] args )
{
Calculator calculator = new Calculator();
// Perform some calculations
System.out.println("Addition: 5 + 3 = " + calculator.add(5, 3));
System.out.println("Subtraction: 10 - 4 = " + calculator.subtract(10, 4));
System.out.println("Multiplication: 6 * 7 = " + calculator.multiply(6, 7));
System.out.println("Division: 20 / 4 = " + calculator.divide(20, 4));
System.out.println("Calculator application completed successfully!");
}
}
- Compilez le projet en utilisant Maven :
mvn compile
Vous devriez voir une sortie se terminant par :
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
- Emballer l'application dans un fichier JAR :
mvn package
Cette commande compile votre code, exécute les tests et empaquette l'application.
- Exécutez l'application empaquetée :
java -cp target/simple-calculator-1.0-SNAPSHOT.jar com.example.calculator.App
Vous devriez voir la sortie suivante :
Addition: 5 + 3 = 8
Subtraction: 10 - 4 = 6
Multiplication: 6 * 7 = 42
Division: 20 / 4 = 5.0
Calculator application completed successfully!
Comprendre le fichier POM Maven
Le fichier Project Object Model (POM) contient la configuration du projet. Ouvrez le fichier pom.xml
dans l'éditeur et examinez sa structure :
<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>com.example.calculator</groupId>
<artifactId>simple-calculator</artifactId>
<version>1.0-SNAPSHOT</version>
<name>simple-calculator</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- Build configuration... -->
</project>
Éléments clés du fichier POM :
groupId
: Identifiant de l'organisation ou du projet
artifactId
: Nom du projet
version
: Version du projet
dependencies
: Bibliothèques externes utilisées par le projet
build
: Configuration pour la compilation du projet
Commandes clés de Maven
Voici quelques commandes essentielles de Maven :
mvn compile
: Compile le code source
mvn test
: Exécute les tests
mvn package
: Crée un paquet distribuable (JAR, WAR)
mvn install
: Installe le paquet dans le référentiel local
mvn clean
: Supprime les artefacts de build (répertoire target)
mvn clean install
: Combinaison de clean et install
Maven a considérablement simplifié la gestion des projets Java en fournissant des conventions, une gestion des dépendances et une automatisation du build. Cette approche standardisée aide les développeurs à se concentrer sur l'écriture de code plutôt que sur la gestion de la structure du projet.