Avec Objis, spécialiste formation MAVEN (3j) et formation intégration continue (5j),
, maîtrisez la notion de profil Maven. Générez dynamiquement les fichiers de propriétés en fonction d’un environnement cible (DEV, TEST, PROD). Comprenez la technique de filtrage de ressources
Prérequis, outils et versions
Tutoriel Maven N°1 : Installation Maven
Objectifs
Comprendre le filtrage de ressource et les profils Maven
Programme
Contexte
Partie 1 : activer le filtrage de ressources
Partie 2 : création fichier settings.xml personnalisé
Partie 3 : déclaration des profils DEV, TEST, PROD
Durée
30min
PUBLICITE : votre formation ‘Intégration continue’ avec Objis
Contexte
Vous souhaitez générez dynamiquement les fichiers de propriétés (ex : db.properties, log4j.properties…) d’une application en fonction d’un profil cible (ex : db dév, db test, db prod).
Partie 1 : Activation du filtrage des ressources
Créez une section (balise) ‘build’ dans le pom.xml du module dao
Créez une section ‘resources’ dans la section ‘build’ crée ci-dessus
Créez un répertoire ‘resources’ dans le module dao :
— mkdir src/main/resources
Ajoutez les éléments suivants dans pom.xml du module d’accès aux données (monappli-dao).
Ici nous avons activé le filtrage des ressources, qui permet par exemple de générer dynamiquement le contenu du fichier de propriété src/main/resources/db.properties , correspondant aux informations de connexion à la base de données.
Créez dans le répertoire resources un fichier db.properties ayant le contenu suivant :
Suivant l’environnement cible choisi pour la base de données (dev , test, prod), le fichier sera modifié dans target/classes/db.properties de façon à correspondre à des informations réelles de l’environnement cible. :
lancez une compilation du DAO ainsi : mvn compile -Ddb.url=jdbc:mysql://localhost/dbdev
Quel impact sur le fichier db.properties généré dans targetclasses ?
Partie 2 : Profils
Les profils permettent de :
— 1) définir un ensemble de valeurs poour les variables dynamiques
— 2) modifier la configuration du POM
Un profil peut être défini dans le pom.xml ou dans le settings.xml.
Copier / Coller le fichier M2_HOME/conf/settings.xml dans USER_HOME/.m2
Cela permet d’avoir une configuration spécifique à l’utilisateur, dans laquelle il pourra mettre des informations sensibles type login/pwd pour serveurs applicatifs ou serveurs de déploiement livraisons.
Supprimez le contenu interne à la balise principale
Bases de données de développement et de test
Ci-dessous 2 profils sont configurés (id=dev et id=test), chacun avec une base de données particulière.
Profil par défaut
Analysez la configuration suivante :
En utilisant la documentation MAVEN, expliquez le role des balises activation, activateByDefault
Montrez que ce settings.xml implique que la base de données de développement qui soit choisie par défaut lors d’un mvn compile.
Validez que le fichier targetclassesdb.properties a le contenu suivant :
— db.driver=com.mysql.jdbc.Driver
— db.url= jdbc:mysql://localhost/dbdev
— db.username= root
— db.password=
Activation de la base de test
Pour utiliser la base de données du profile id=test, lancer mvn install -Ptest
QUESTION : Quel impact sur le fichier db.properties ?
Pour lancer l’option debug de Maven (-X) : lancer mvn install -Ptest -X
INFO : il est possible de définir des profiles dans pom.xml ou dans settings.xml.
Pour connaître les differents profils présents, lancez mvn help:active-profiles
Bonne Pratique de Filtrage
Reproduisez la bonne pratique sur le filtrage montré durant le cour ce matin qui consiste à faire un fichier filtre pour chaque environnement.
Conclusion
Dans ce tutoriel, vous avez mis en oeuvre la notion de profil maven et la technique de filtrage de ressources.