Stacktrace

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.

Kommentarer

  • Men det är ju fortfarande så att eclipse bygger allt själv? Jag tycker det är lite märkligt eftersom att alla eclipse-verktyg såsom web tools och alla java ee-plugins blir beroende av eclipse. Borde inte någon slå ett slag för att decoupla bygget från IDE:t??

  • Du har helt rätt, både M2Eclipse och Buckminster bygger mha Eclipse. Dock så är ju M2Eclipse bara ett hjälpmedel för att kunna använda Mavens POM-filer i Eclipse så ett ”riktigt” bygge skulle ju då ske endast via Maven och valfri kompilator (via JAVA_HOME). Buckminster erbjuder också stöd för att bygga utanför IDE:n (headless) men det är ju trots allt fortfarande Eclipse som bygger det hela.

    Det man vill åstadkomma är ju typiskt att ha EN projektmodell (ex POM-en) som erbjuder hjälp med både automatiska byggen, dependency management etc samt IDE-stöd.

  • Kör ni på eclipse rakt av? Jag har hört rätt mycket om NetBeans på sistone, men har ingen personlig erfarenhet av det IDE:t. Kanske det finns bättre stöd där? Jag hittade nämligen en annan plugin som säger sig stödja maven 2 builds på NetBeans: http://mevenide.codehaus.org/.

  • Anledningen är mest att jag vill slippa köra eclipse:eclipse hela tiden när man ändrar POM:en. I europa verkar det dessutom som att man måste stänga och öppna projektet för att eclipse ska läsa om .classpath. Vore guld med lite tightare integrering mellan IDE:t och maven. Jag tycker tycker att principerna bakom maven är genialiska och vill inte gärna släppa det. Men sen kan man ju inte vara utan Eclipse heller :D. Vill bara ha det bästa av två världar…

  • Jag har tyvärr inte testat NetBeans tillsammans med Maven. I det projekt där jag sitter nu så kör vi Eclipse 3.2 och M2Eclipse när vi utvecklar, våra byggen (Continuous Integration, nightly builds och releaser) är ”rena” Maven-byggen.

    Jag tycker inte heller att det är så tilltalande att skapa nya projekt via eclipse:eclipse varje gång POM:en förändras och därför valde vi M2Eclipse istället.

  • [...] väldigt många av de features som finns i pluginen m2eclipse som jag tidigare skrivit om här. Efter att ha labbat lite med pluginen så har jag fått känslan av att q4e är stabilare, [...]

Skriv kommentar