Maven and Eclipse, Top Eclipse Indigo Feature #10

Maven and Eclipse, Top Eclipse Indigo Feature #10

June is my favorite time of year.  Not only is summer starting (in the northern hemisphere), but it’s Christmas time for software developers.  On June 22nd, the annual Eclipse release train will arrive.  And, for the 9th year in a row, the train will arrive on-time and on-budget. While the official release — name Indigo — is not due to arrive for another 10 (business) days, I’m going to use this opportunity to highlight my 10 favorite features of this release.  This is becoming somewhat of an annual tradition for me.

The Indigo release contains 62 projects and 46 million line of code.  While I do consider myself a jack-of-all-trades when it comes to Eclipse, I unfortunately only use a subset of the projects for my daily work. If I don’t mention your favorite projects (or feature) in this article, please don’t take offence. In fact, why not write your own article?

Number 10 on my top 10 list is Maven integration with Eclipse.

Developers continually complain about the challenges surrounding release engineering.  Custom scripts to ensure test cases run properly.  Ant tasks to manipulate file sets and create deployable archives.  Source control system to manage binary dependencies.  In fact, developers will hack their builds until they work, and never touch them again — with the fear of breaking something.

The goal of the Apache Maven Project is to manage a software project’s build, reporting and documentation from a central piece of information.  While Maven has been helping Apache projects for years, for a variety of (technical) reasons, it has gained little traction with Eclipse projects… until now!

The Tycho project is a plugin designed for building OSGi bundles.  While Tycho itself is not part of Indigo, it is being used to build projects like JGit and EGit.  As well, the m2eclipse project — which brings first class maven integration to the Eclipse IDE —  is now an official Eclipse project and available with many of the Eclipse downloads.

M2Eclipse provides POM file editors, tools for materializing maven based projects, and facilities to spin Maven builds from within your IDE.  If Maven is your build technology of choice, m2eclipse is for you.

Kudos for the Tycho project go to Igor Fedorenko, Jan Sievers and Tobias Oberlies. For the m2eclipse project, shout-outs go to Benjamin Bentmann, Igor Fedorenko, Jason Van Zyl, Milos Kleint, Matthew Piggott, Pascal Rapicault, Paul Tatavu, Dmitry Platonoff and Richard Gould. Thanks everyone!