Archive

Posts Tagged ‘maven’

Apache Maven, 2eme édition

décembre 12, 2011 2 commentaires

Cet été (si loin déjà!), Pearson m’a envoyé un exemplaire gratuit du livre Apache Maven 2 et 3, 2eme édition, grâce à la sympathique entremise d’Arnaud Héritier et Nicolas de loof.

Bien que j’ai dévoré le livre dès réception, la présente critique a été retardée par un déménagement/changement de taff. Ceci dit, mieux vaut tard que jamais, et maintenant que le contexte a été posé voyons pour une critique sans faux semblant…

Alors, que dire d’Apache Maven 2 et 3? Pour les pressés, en quelques mots: si vous sentez débutant/intermédiaire en Maven, foncez. Si vous êtes expert et cherchez à tuner votre Maven, passez votre chemin.

Pourquoi foncez? Tout simplement parce que le livre réussi à bien mettre en avant tout l’intérêt et la force de Maven, abordant les multiples domaines d’usage, sans sombrer dans le guide de référence infâme et soporifique (et supplanté par internet depuis que l’ADSL existe), le tout avec un mode narratif franchement agréable passé la surprise initiale (il s’agit en effet de Nicolas et Arnaud narrant comme telle ou telle personne ont eu tels soucis et comment cela a été résolu). Et comble du raffinement, nos deux comparses fournissent en chemin des trucs et astuces pour des problèmes « courants » qui, perso, m’ont bien servi depuis.

Certes, tout un chacun trouvera des aspects qu’il aurait souhaité voir plus approfondi, mais c’est également une des forces du livre: il pousse à aller de l’avant, tout en donnant les bases pour qu’on se sente capable de le faire. A l’inverse, il ne cache pas certains aspects encore perfectibles de Maven, tout en fournissant assez d’info pour que le lecteur ne soit pas démuni.

Je ne ferai qu’une critique négative de taille: les auteurs tentent de rassurer sur le futur de Maven, entre Sonatype et la fondation Apache. Et perso ils ont produit tout l’effet contraire. En effet, si on lit bien que les deux organisations sont faites de personnes pleines de bonne volonté, on devine également aisément que des tensions sont présentes, sans en avoir le détail, tout en voyant de façon évidente les contradictions des deux approches, entre le rythme mesuré de la fondation Apache et de ses règles et le dynamisme zélé (et intéressé) du papa de Maven et son équipe.
J’ai également ressenti un certain flou sur les produits Sonatype. Comment s’intègrent ils avec le reste? Où commence le domaine payant? Quelle stratégie est suivie par Sonatype dans tout cela?
Bref, ça manque de vision d’ensemble, à mon sens, ainsi que d’une présentation claire et sans ambages des tensions présentes (ou passées, j’en sais rien moi) histoire de poser le cadre.

Avec le recul, toutefois, cette critique s’atténue pour laisser place à la gratitude de se servir au quotidien des conseils et de l’inspiration générées par ce bouquin. Aussi, vue la période, je concluerai simplement: un parfait cadeau de Noël pour geek ou geekette!

Allez, bonne lecture à tous et encore merci à nos deux auteurs!
++
joseph

Publicités
Étiquettes : , , ,

How we have the development specific code safely out of the way

septembre 12, 2009 2 commentaires

Quite frequently, one has to write some development specific code. For example, at work, we have, when needed, an « application launcher » (named with the application name) and a dev web page, mounted under /dev. This page in turn allows to write shortcuts in the application work flow, in order to access specific page with an ad hoc environment (profile, data…).

However, one quickly wonders how to be sure these classes won’t get in production.

Our solution is linked to m2eclipse. This maven plugin for eclipse has the following behavior : it puts both the main and test source paths in the class path. As such, one can access both the production and test code when running the application from eclipse. This is normally not done by Maven. More precisely, Maven build jars don’t include the test code.

The solution is then really easy : we put our dev. specific code under the test branch, and we are perfectly able to run it all from eclipse. But Maven makes sure none of it will make it into the production jar/code. Double with this application launcher + dev page conventions, it really makes it simple to dig into an application/project. Nice and easy no ?

Étiquettes : , , ,

m2eclipse tips

août 18, 2009 2 commentaires

Thanks to Maven: The Definitive Guide, I was able to answer some questions I had about m2eclipse as well as learn more of it.

  • When you put a plugin in the build part of the pom, how comes some are running on each source modification and others not ?
    The reason is simple : m2eclipse runs by default the plugins in the process-resources phase. Furthermore, this is set up in the Preferences/Maven part of eclipse (but the settings affects all projects, which was a bit overkill for us)?

  • One can ask m2eclipse to display the projects’ maven version, through Preferences/General/Appearance/Label Decorations and then check « Maven Version Decorator ». Comes handy when having to update different versions of different plugins.

  • Last but not least, the pom editor « Dependency hierarchy » tab is in fact pretty useful :$
    Before I was looking at the « Maven Dependencies » folder to figure out what was there, but in fact this tab displays it nicely.
    Two lists are shown there : « Dependency Hierarchy » and « Resolved dependencies ». The first one allows to figure out what was rejected (and from where in the dependencies), the second one shows what is in.
    A search is available and run on both lists. So if you wonder about spring dependencies issues, just put spring in the search field, and you all artifact ids containing spring are highlighted.

Hope it helps !
++

Étiquettes : , ,

Book review : Maven: The Definitive Guide

I’ve recently finished Maven: The Definitive Guide. It was the paper edition, since I muss confess I didn’t manage to go through the pdf edition.

Still, I found the book rather interesting and quite well put. It’s not as enlightening and breath cutting as some others, but at least I was able to read it without effort. Some bits, for example where each setup options are presented, are a bit boring, but otherwise it provides good insight on most of Maven, including m2eclipse and plugin creation. Furthermore, there are pages I already know I’ll read again later, like the example projects they provide and the different strategies used there, to make more sense out of them (now that I’ve a better overall understanding).

I would do only one reproach : the explanation about how maven resolves dependencies lacks depth, notably regarding snapshots.

Overall, I would advise it for an average user of Maven willing to get a better understanding of it (I now know where this « mojo » word comes from !).

Étiquettes : , , ,
%d blogueurs aiment cette page :