dimanche 19 février 2012

[Maven] Comprendre les fonctionnalités d'un plugin

Il n'existe pas de liste exhaustives des plugins Maven disponibles. En revanche, à partir du nom d'un plugin, il est possible d'obtenir sa documentation, et ce grâce au plugin dédié help.

Le plugin help propose entre autres mojos describe, qui fournit une description de n'importe quel plugin, ainsi que la liste des mojos d'un plugin et l'explication de la tâche qu'ils accomplissent.
mvn help:describle -Dplugin=<nom du plugin>

Appliquons par exemple le mojo help:describe sur lui-même :
mvn help:describe -Dplugin=help

Pour davantage d'informations, notamment sur les paramètres acceptés par chaque mojo :
mvn help:describe -Dplugin=help -Ddetail
ou encore : mvn help:describe -Dplugin=help -Dfull

Un mojo très intéressant du plugin help est help:effective-pom (Cf. la documentation fournie par les commandes précédentes).

[Maven] Plugin & Mojo

Maven est un moteur dont le coeur définit le cycle de vie pour la construction d'un projet logiciel : traitement des ressources, compilation du code source, traitement des binaires, traitement des ressources de test, compilation des tests, passage des tests, packaging.
Toutes les étapes de génération ou de traitement prises en charge par Maven sont en fait réalisées par les plugins de Maven. Le cycle de vie par défaut proposé par Maven consiste en un ensemble ordonné de phases, auxquelles sont attachés un ou plusieurs plugins.

Un plugin Maven est lui-même constitué de tâches programmées (ou goals), et ce sont en fait ces tâches qui sont attachées aux phases du cycle de vie. S'agissant de Maven, on parle plus communément de Mojo : Maven Old Java Object.

Ainsi, lorsqu'on demande à Maven de construire un projet, Maven déroule son cycle de vie, et à chaque phase rencontrée, Maven lance certains Mojos du ou des plugins associés à cette phase.

En définitive, les fonctionnalités de Maven peuvent être étendues à l'infini par le développement et l'utilisation de nouveaux plugins, susceptibles d'enrichir le cycle de vie par défaut, voire de définir des cycles de vie personnalisés.

Liens :

jeudi 2 février 2012

[Git] Mettre du contenu de côté

... ou comment sauvegarder son travail en cours dans la pile temporaire.

Dans certaines situations où un travail n'est pas terminé ni à jeter et où l'on souhaite le mettre de côté en attendant d'y revenir, le temps de travailler sur autre chose, Git propose d'utiliser une pile dédiée (FiFo) grâce à git stash. Cette commande permet de sauvegarder sans commit, et de revenir au dernier commit de la branche courante (de façon équivalente à git reset --hard HEAD). Au moment de la récupération, Git offre plusieurs possibilités :
  • Voir les éléments de la pile : git stash list
  • Voir les modifications sauvegardées dans un élément de la pile dans la branche courante : git stash show stash@{number}, pour voir les modifications fichier par fichier, et avec l'option -p pour voir les modifications ligne par ligne dans chaque fichier. number=0 désigne le dernier élément, number=1 l'avant-dernier, number=2 l'avant-avant-dernier, etc.
  • Sauvegarder l'index dans la pile, en y joignant un message personnalisé (utile pour se souvenir du contenu sauvegardé) : git stash save "message"
  • Récupérer le dernier élément de la pile dans la branche courante : git stash apply
  • Récupérer un élément précis de la pile dans la branche courante : git stash apply stash@{number}.
  • Créer une branche dans laquelle récupérer le dernier élément de la pile : git stash branch new_branch_name
  • Supprimer un élément de la pile : git stash drop stash@{number}