Introduction à maven
MAVEN
Frédéric Moal
IHM
année 2013/2014
Plan
Introduction
Définition
Concepts
Ecosystème
Cas d’utilisation
Bonnes pratiques
Introduction
Introduction
Deux problématiques récurrentes sur tous les projets pour la production de programmes
Avant
le dev, mettre en place l’environnement [contexte, libs, …]
A la fin du dev, livraison du résultat
Production de programmes
À la fin du dev, pour livraisons, pour tests d’intégration, pour recette, pour mise en production, il faut :
Compiler les .java
Compiler les .jsp (évite la compile on the fly ultérieure)
Nettoyage de répertoires
Vérifier par PMD et ChecskStyle
Lancer des tests unitaires
Récupérer/mettre dans svn, en créant éventuellement un label
Sauvegarde de fichiers à des emplacements précis, ou synchroniser
(ne copie que ce qui est nécessaire)
Envois par ftp, voire par mail
Génération de doc (à partir de javadoc par exemple)
Production de programmes : Ant
Avant
Suite de scripts distincts
Ant [2000, pour construction de Tomcat]
.bat ou .sh
Make
Lancement de programmes séparés
Que ce passe-t-il si l’un plante ?
Xml
Portable (win/unix)
Extensible (modulaire)
Fiable
Projet Apache
v1.5 depuis juillet 2002 (stable, voire…)
Nombreuses extensions et projets dérivés
Ant
Enchainement de cibles
Cibles constituées de tâches
<?xml version="1.0" encoding="UTF-8"?>
<project name="Banque" default="helloWorld" basedir=".">
<property name="texte" value="bonjour chez vous"/>
<target name="helloWorld">
<echo>${texte}</echo>
</target>
</project>
Ant – Tasks
La tâche est la brique de base des actions Ant
Très nombreuses tâches possibles en standard
Très nombreuses extensions
Principales tâches natives
Compilation
Gestion de fichiers (dont archivage et jar)
sync delete jarfile
Autres
javac
exec record <record name=“antbuild.log" loglevel="info" /> ftp Scope
Include / exclude