Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Efter att ha provat olika konstellationer av Eclipse-plug:er för Maven, Maven-plug-iner för Eclipse, att bygga från prompten och att bygga i eclipse, har jag fastnat för en uppsättning som jag tycker fungerar riktigt bra.
Min målbild har varit att inte göra några manuella Eclipse-inställningar, utan att dessa ska genereras från Mavens projektfil. På så sätt behöver bara källkod + byggfil vara incheckad i versionshanteringssystemet. Det vore väl kortast möjlig väg från rapporterad bugg till rättad lösning, med utgångspunkt i en “ren” utvecklarmaskin?
Det finns några spelregler man behöver hålla sig till, för att ovanstående ska bli verklighet:
Detta arbetssätt kan relativt enkelt fås på plats genom att använda den plug-in för Maven som genererar Eclipse-filer.
Som förberedelse, behöver en classpathvariabel skapas i aktuellt Eclipse-workspace. Variablen ska heta M2_REPO
och peka ut lokalt maven repo. Denna variabel kommer sedan att refereras av de genererade eclipse-projekten. Den kan skapas manuellt i Eclipse eller automatiskt med hjälp av följande mavenkommando:
$ mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:configure-workspace
Var noga med att uppdatera eclipse-plugin:en till den senaste versionen efter att du installerat Maven. Argumentet -U
gör att den senaste versionen av plugin:en hämtas:
$ mvn -U eclipse:clean
Följande kommando genererar ett komplett eclispe-projekt från POM-filen:
$ mvn -Dwtpversion=1.5 eclipse:eclipse
Detta + refresh i Eclipse, behöver alltså köras efter varje ändring av “dependencies” i pom-filen. Men i övrigt jobbar mani eclipse som vanligt, inklusive full integration för körning av web- och EJB-moduler i WTP:n. WebServices med “contract first” tarvar ett eget kapitel. Det får bli ett senare inlägg!
Den kan vara värt en extra inställning för att slippa tänka på att gå ut till prompten när pom:en är ändrad. Det kan enkelt åstakommas genom att i Eclipse projektinställningar lägga till en s.k. “Builder” som kör eclipse-kommandot ovan + refresh så snart POM:en editerats. Följande recept gäller för Eclipse 3.2 och 3.3 och 3.4. I Europa / 3.3 är visserligen WTP-versionen 2.0 respektive 3.0 i Sökresultat
Eclipse 3.4 / Ganymede, men maven-plugin:en känner inte till något högre versionsnummer 1.5 (Callisto / 3.2). Jag har hittills inte stött på några problem med WTP 2.0 eller 3.0 med avseende på WTP-stödet för just web-appar (war).
Markera Builders och välj New..
Markera Program. Välj sedan OK.
-Dwtpversion=1.5 eclipse:eclipse
Innan vi är klara, ska vi se till att vår nya konfiguration, som genererar om classpath-definitioner i eclipse efter ändringar i pom:en, körs före kompileringen. Detta görs genom att markera vår nya “builder” i listan:
Bild saknas
…och därefter trycka upprepade gånger på Up, tills vår “builder” hamnar överst.