lundi 30 novembre 2009

Le plugin maven Build Number

Aaaahhhh!
Bon bin on apprend tous les jours.
Il y a un truc que je n'aime dans le plugin release, c'est d'avoir a remplir le numéro de version de la version suivante. Bien sur, le remplir ca se comprend.
Mais quand meme, je me disais bien qu'un plugin me permettant de pouvoir changer de version en lui indiquant quelle nomenclature j'utilise ca pourrait être pas mal.
Et bien visiblement, c'est possible avec le plugin Build Number.
Par exemple, on peut définir la forme que doit avoir un numéro de version :

 {0,number}.{1,number}.{2,number}
 
   buildNumber0
   buildNumber1
   buildNumber2
 
Je trouve ca plutôt pas mal, je viens de découvrir, il ne reste plus qu'à voir comment s'en servir!

Google wave, c'est bien ou c'est pas bien

Une semaine que je suis sur la wave.
Bilan... mais a quoi ca peut servir aujourd'hui ?
Ca pourra surement devenir un outil de travail collaboratif.
Ca pourra éviter de faire des comptes-rendus de discussion s'étant tenu sur msn.
Mais à part ca, force est de constater que pour l'instant l'intérêt de cet outil est plus que limité.

A une wave, comprenez une file de messages, un espace de dialogue, on peut ajouter des plugins.
Ce ne sont que les prémices de ce produit, et par conséquent, les extensions ne sont pas toujours au top.

Concretement, aujourd'hui, c'est de la découverte, il manque quelques fonctionnalités de bases, c'est plus ou moins buggués donc on attend de voir ce que sera la suite!

Pour avoir un autre avis, je vous recommande cet article intitulé : Pourquoi Google wave c'est de la merde, et pourquoi vous l'utiliserez quand meme.

lundi 9 novembre 2009

Le plugin release de maven

Vous souhaitez automatiser la génération de tags dans vos applications Java EE, et vous utilisez maven2 ?
Génial, le plugin release de maven est fait pour vous!
Rien de compliqué, deux phases principales
release:prepare
- vérifie qu'il n'y a aucune différence entre le poste qui build et la gestion de configuration
- vérifie qu'il n'y a pas de dépendances en SNAPSHOT
- change la version des poms en supprimant le 'snapshot'
- pose un tag
- change de nouveau les poms en y mettant la nouvelle version
- commite ce changement

release:perform
- fais un checkout du tag qui est posé par release:prepare
- joue les goals associés au perform (par défaut deploy et site-deploy)


Bon jusque là rien d'extraordinaire... Ok, mais des fois dans un projet multi-modules, vous passez des paramètres.
Or, le plugin release ne répercute pas ces paramètres dans les sous-modules!
Pour pallier à ce problème il faut ajouter -Darguments="vos arguments"

Un exemple :
vous buildez votre projet avec mvn clean install -DmonParametre=uneValeur
et la vous remarquez que lors de la release vous ne retrouvez pas 'monParametre'. La solution sera donc :
mvn release:prepare release:perform -Darguments="-DmonParametre=uneValeur"

C'était tellement évident!