0% ont trouvé ce document utile (0 vote)
52 vues41 pages

2 - Spring Boot - Maven

Transféré par

hichria62
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues41 pages

2 - Spring Boot - Maven

Transféré par

hichria62
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Spring boot - Maven

UP ASI
Bureau E204

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 1


Plan du Cours

– Définition Spring Boot


– Créer un projet Spring Boot
– Avantages Spring Boot
– Lancer un projet Spring Boot
– Définition Maven
– Installation Maven
– Gestion des dépendances

– Gestion des versions d’un projet

– Les commandes Maven

– Travail à faire
© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 2
Définition Spring Boot

• Spring Boot est le projet principal du Spring Framework.

• Il simplifie le démarrage et le développement de nouvelles


applications Spring.
• Il diminue énormément le temps de développement et
augmente la productivité.
• Avec Spring Boot, les configurations de Spring sont diminuées.

• Il est très facile d’intégrer des applications Spring Boot avec ses
écosystèmes de Spring (Projets Spring) comme Spring MVC,
Spring Data, Spring Security etc…

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 3


Définition Spring Boot

• Spring Boot soutient des conteneurs embarqués (embedded


containers).
• Cela permet à des applications web de s’exécuter sans
déploiement sur un Web Server.
• Il suit l'approche “Configuration par défaut” afin de diminuer le
temps et l'effort de développement.
• Spring Boot favorise le travail avec les microservices.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 4


Créer un projet Spring Boot

• File → New → Project

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 5


Créer un projet Spring Boot

• Spring Initializr (https://start.spring.io/)


(Vous devez avoir un accès à internet)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 6


Créer un projet Spring Boot

Le nom du projet

L’emplacement du projet

Le langage du projet

Le gestionnaire de projet

GroupId: Identifiant unique du


groupe qui a créé le projet
(Exemple: tn.esprit)

ArtifactId: Nom unique utilisé


pour nommer l’artifacts (Livrables)
à construire

Package principal du projet

Le type de packaging du livrable

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 7


Créer un projet Spring Boot

La version du projet Spring Boot à utiliser

Il faut ajouter les dépendances


suivantes:
✓ Spring web
✓ Spring Data JPA
✓ Lombok
✓ MySql Driver

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 8


Créer un projet Spring Boot

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 9


Créer un projet Spring Boot - Arborescence

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 10


Avantages Spring Boot

• Spring Boot offre trois avantages incontournables :

▪ La gestion des configurations

▪ Le serveur est embarqué

▪ La gestion des dépendances

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 11


Avantages Spring Boot - Gestion des configurations

• Spring Boot facilite la gestion des configurations en centralisant les


configurations dans un seul fichier. Ainsi en se focalisant sur le métier au lieu de
la configuration, le développeur devient beaucoup plus productif.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 12


Avantages Spring Boot - Gestion des configurations
• Le configuration standard du fichier « application.properties » :

### DATABASE ###


spring.datasource.url=jdbc:mysql://localhost:3306/springdb\
?createDatabaseIfNotExist=true\
&useUnicode=true\
&useJDBCCompliantTimezoneShift=true\
&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
### JPA / HIBERNATE ###
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 13


Avantages Spring Boot - Gestion des configurations

• Pour information, nous avons ajouté les paramètre suivants

&useUnicode=true\
&useJDBCCompliantTimezoneShift=true\
&useLegacyDatetimeCode=false&serverTimezone=UTC
dans le fichier application.properties pour éviter l’erreur suivante, lors de l’exécution :

java.sql.SQLException: The server time zone value 'Paris, Madrid' is


unrecognized or represents more than one time zone. You must configure
either the server or JDBC driver (via the serverTimezone configuration
property) to use a more specific timezone value if you want to utilize time
zone support.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 14


Avantages Spring Boot – Serveur embarqué
• Spring Boot fournit des serveurs intégrés (Embedded HTTP servers) comme
Tomcat, Jetty .... afin de développer et de tester des applications web
facilement.
• En lançant le projet, le jar du Tomcat dézippe et se lance.

Clique droite sur le projet -> Open Module Settings -> Libraries

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 15


Avantages Spring Boot – Gestion des dépendances

• Spring Boot facilite la gestion des dépendances pour commencer un projet


Spring.
Avant Spring (Exp: JavaSE)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 16


Avantages Spring Boot – Gestion des dépendances

Avec Spring Boot

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 17


Avantages Spring Boot – Gestion des dépendances

• Spring Boot facilite la gestion des dépendances grâce notamment à


l’utilisation des starters.
• Un starter va apporter à votre projet un ensemble de dépendances,
communément utilisées pour un type de projet donné.
• Les starters facilitent la gestion des versions. Plus besoin de chercher quelles
versions sont compatibles afin de les ajouter une à une dans le pom.xml.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 18


Avantages Spring Boot

Spring Boot peut s'expliquer simplement par l'illustration ci-dessous:

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 19


Lancer un projet Spring Boot

• Comment démarrer un projet Spring Boot ?


✓ Vérifier la configuration du fichier « application.properties »
✓ Vérifier que le serveur base de données est fonctionnel.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 20


Lancer un projet Spring Boot

• Si vous souhaitez modifier le numéro de port du serveur, ajoutez la variable suivante


dans le fichier « application.properties »: server.port= « numéro de port souhaité »

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 21


Définition Maven
Maven est un outil pour la gestion et l’automatisation de
construction des projets développé par la fondation Apache
permettant :

• Automatisation de tâches récurrentes

• Construction, Compilation des projets

• Gestion des dépendances

• Génération des livrables*

• Génération de la documentation et de rapports( mvn site)

• Déploiement d'applications (mvn deploy)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 22


Définition Maven
*Livrable: Résultat d’une production réelle pour faire le déploiement
On a 3 types de livrable :
✓ JAR: Java archive
✓ WAR: Web archive
✓ EAR: Enterprise archive ➔ JAR + WAR

→ La dépendance est un projet compressé en livrable afin


d’utiliser son code source pour implémenter des fonctionnalités
dans une application

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 23


Installation Maven
• 2 façons pour installer « Maven »:

- Maven entant que Plugin : Il est déjà installé par défaut


dans Eclipse/IntelliJ.

- Maven en standalone à travers l’invite de commandes


(non traité dans notre cours).

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 24


Installation Maven
• Comment savoir si Maven est bien installé, et quelle version nous utilisons
(Dans le cas où Maven est installé en tant que Plugin dans IntelliJ)?

File → Settings → Plugins

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 25


Gestion des dépendances – POM.XML
• POM (Project Model Object): Il s'agit d'un fichier XML qui contient des
informations sur le projet et des détails de configuration utilisés par Maven pour
construire le projet. Il contient une partie pour définir les dépendances utilisées
dans un projet.

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 26


Gestion des dépendances – POM.XML
• project: Balise racine de tous les fichiers pom.xml.
• modelVersion: Version de POM utilisée.
• groupId: Identifiant unique du groupe qui a créé le projet.
• artifactId: Nom unique utilisé pour nommer les artifacts (Livrables) à
construire.
• packaging: Type de packaging du projet ( ex. : JAR, WAR, EAR...).
• version: Version de l'artifact généré par le projet.
• name : Nom du projet.
• description : Description du projet.
• dependencies : balise permettant de gérer les dépendances.
• archetype : Template de Projet / Structure de Projet.
© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 27
Gestion des dépendances - Repository
• Les dépendances (Les bibliothèques) et les livrables se situent dans des
différents endroits nommés « Repository »

• C’est un répertoire dans lequel tous les fichiers JAR du projet, les fichiers JAR
de la bibliothèque, les plugins ou tout autre artefact spécifique au projet sont
stockés et peuvent être utilisés facilement par Maven.

• On a 3 types de repository:

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 28


Gestion des dépendances - Repository
• Repository Local:

C:/utilisateurs/<Nom de la machine>/.m2/Repository

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 29


Gestion des dépendances - Repository
• Repository Central: https://mvnrepository.com/

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 30


Gestion des dépendances

Central

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 31


Gestion des dépendances
• Après l’ajout d’une dépendance dans le fichier « application.properties »,
vous devez synchroniser le projet
– 1ère manière (Manuelle):

Clique droit sur le projet

→ Maven

→ Reload Project

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 32


Gestion des dépendances
– 2ère manière (Automatique):

File → Settings → Build, Execution, Deployment → Build Tools

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 33


Gestion des versions d’un projet

Exercice
Soit les versions du projet suivantes : 0.0.1

✓ 1.0.0

✓ 1.1.0

✓ 2.0.0

✓ 2.0.1

✓ 3.0.0

A quoi correspond chaque numérotation ?

✓ Release majeure Release mineure Patch (Correctif)


© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 34
Les commandes Maven (Buts ou Goals)

• mvn compile: Créer les .class

• mvn test: Jouer les tests unitaires

• mvn package: Création du livrable dans target.

• mvn install: Copie du livrable dans le Repository local


:~\.m2\repository\...
• mvn deploy: Copie du livrable sur le repository distant

• mvn clean: Supprime le contenu du dossier target.

• mvn site: Création du site web (Rapport sur l’application)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 35


Les commandes Maven (Buts ou Goals)
• Pour lancer les différentes commandes maven

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 36


Les commandes Maven (Buts ou Goals)

• On peut faire une commande Maven Customisé en utilisant


Maven Goal : Cliquer sur le Symbole et taper la commande
voulue, exemple mvn clean package ou mvn clean install ou … :

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 37


Les commandes Maven (Buts ou Goals)

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 38


Les commandes Maven (Buts ou Goals)
• Emplacement du livrable :

{emplacement Repository local}/groupId/artifactId/version

➔ Réponse (pour la dépendance Log4J): ……………………………….…

• Nom du package (jar en général) :

{artifactId}-{version}.{package}

➔ Réponse (pour la dépendance Log4J): ……………………………….…

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 39
Travail à faire
• Créer un projet « Spring Boot » avec les paramètres suivantes:
✓ Name: SpringBootFirstApp
✓ GroupId: tn.esprit.’_Votre classe’.’Votre nom et prénom’
✓ ArtifactId: SpringBootFirstAppArtifact
✓ Packaging: Jar
✓ Package name: tn.esprit.spring
✓ Spring boot version: Une version stable(2.7.4)
✓ Dependencies: Spring web, Spring Data JPA, Lombok et MySql Driver

• Créer les livrables avec les versions: 1.0 ,1.0.1, 2.0 et 2.2
• Déplacer le livrable vers le repository local (.m2)
• Exécuter la commande Maven pour vider le dossier « Target » après le
déplacement
© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 40
SPRING BOOT-Maven

Si vous avez des questions, n’hésitez pas à nous


contacter :

Département Informatique
UP ASI
Bureau E204

© 2022-2023 – ESPRIT – Module Architecture des SI II (Spring) – Spring Boot et Maven 41

Vous aimerez peut-être aussi