Maven 2 och Eclipse är två av de mest använda verktygen för javautveckling på marknaden idag. Maven 2 används för att automatisera byggen, assembly och deployment, rapportgenerering medan Eclipse främst används som IDE.

Integration mellan dessa två produkter har inte alltid varit smärtfri men nu finns (minst) två integrationssätt som verkar lovande, M2Eclipse och Buckminster.

M2Eclipse

M2Eclipse är en Eclipse-plugin som läser Mavens POM-filer och löser upp beroenden i så kallade Classpath Containers. Notera att M2Eclipse inte ännu nått 1.0-status.

Maven Integration for Eclipse provides tight integration for Maven into the IDE and providing the following features:

  • Launching Maven builds from within Eclipse
  • Dependency management for Eclipse build path based on Maven’s pom.xml
  • Resolving Maven dependencies from the Eclipse workspace without installing to local Maven repository
  • Automatic downloading of the required dependencies from the remote Maven repositories
  • Wizards for creating new Maven projects, pom.xml or to enable Maven support on plain Java project
  • Quick search for dependencies in Maven remote repositories
  • Quick fixes in the Java editor for looking up required dependencies/jars by the class or package name
  • ...more features to come

This plugin is using the Maven Embedder component to launch Maven and to work with all Maven data. This is work in progress and we are working hard to make it smooth and nice.

M2Eclipse hämtar alltså all information från POM-filen där alla beroenden kan deklareras, både till externa tredjepartskomponenter och till interna projekt som finns i Eclipse-workspacet.

Buckminster

Buckminster är ett Eclipse-ramverk för att hantera automatisering av byggen, assembly och deploy för komponentbaserad utveckling. Du skapar egna byggfiler i Buckminster-format som kan hantera beroenden från olika typer av repositories (ex update-sites, SCMs såsom Subversion och Perforce, Maven-repositories etc). Buckminster kan även generera sina byggfiler utifrån Mavens POM-filer.

In order to do so, Buckminster will have to understand a lot of things about components. We say ”understand” because Buckminster interprets existing component information to perform its work. This information comes in many different forms such as plugin.xml or feature.xml files, POM files in Maven, etc. Buckminster understands them all, and translates them into a Buckminster component specification (or CSPEC).

Buckminster är dock inte (ännu) en ersättare till Maven, bland annat eftersom:

  • Stöd saknas för rapport- och sitegenerering
  • Erbjuder inte en ”standardiserad” byggstruktur
  • Buckminster är IDE-beroende (duh!)

Notera även att Buckminster heller inte nått 1.0-status så vad som helst kan ju hända på vägen.