Solidifying my Maven foundation

After attending Maven 201 recently and really enjoying it, I am attending Maven 101 from Sonatype today. Lets see if all my base r belong to me 😉

Matthew McCullough is again doing the teaching and from the start it is a pleasure to listen to him explaining the core ideas behind Apache Maven to us. And he does not hold back either and wants us to ” Spend time on your software, not on your build.”. He will teach us how Maven can help with that. A good overview is followed by a list of other build tools and a more detailed comparison to Apache Ant, highlighting the advantages of conventions over configuration approach Apache Maven is following. As an interesting tidbit I found out that Maven, with the start of the Jakarta Alexandria project, will be 10 years old next year.

Since it worked so well last time, I will just iterate a bunch of impressions in a list again, so lets go:

  • It was good to see Matthew mention how a simple pom file does not declare at all what needs to be done, but can still do a lot of things out of the box
  • there seems to be a more wide spread understanding of proxy servers and what benefits you get from running them as part of your Maven setup.
  • you should really use versions with the three digit scheme at max to save yourself some pain..
  • we had a great discussion about version number and Matthew emphasized that the build/artifact version number has to be decoupled from the marketing version number. I totally agree! Marketing should not run engineering 😉
  • the interactive mode of the maven archetype plugin is much nicer than trying to get it all right in one command line
  • M2Eclipse is a must have for Eclipse/Maven users and even worth toying around for other Maven users..
  • Modules in a multi-module project can just be tied together by module without referencing the parent pom. So you can have pure aggregation without inheritance. You could even have aggregation with modules inheriting from a different parent. Might have to try that for Android projects.
  • Polyglot Maven has the feature to translate an existing pom.xml and supports a whole lot of formats. Wow..
  • I need to switch back to using Maven Shell again more. It really is very good. Just gotta figure out my memory problems I had last time I used it for a while.

So that is it again for me. I listened to a great introduction to Maven with lots of material available to get more practice. And I found that my foundation is pretty solid 😉