October 23, 2008

Maven2, m2eclipse och Nexus

För er som fortfarande använder Ant som byggstöd, borde kolla Maven2. Maven2 är ett komplett byggverktyg, fast med tre skillnader: Det har inbyggt stöd för Code Lifecycle, vilket innebär om ska bygga ett projektet ska koden gå igenom alla livscyklar upp till package. Detta tänkande är väldigt uppfostrande och innebär att innan man kodat klart en komponent ska man även ha skrivet testfall, och dessa testfall ska gå igenom innan man skeppar en jar.
Validate → Generate Source → Generate Resource → Compile → Test → Package → Install → Deploy
Nästa är att Maven2 Project Object Model, POM, blir väldigt kompakt om man använder de fördefinierade katalogstrukturer, vilket innebär om en ny utvecklare ska sättas in i projektet och är bekant med Maven2, genast kommer att hitta i projektkatalogerna, men också veta hur han eller hon bygger eller testar kod utan att detta är dokumenterat. Sist men inte minst, finns de flesta tänkbara plugins till Maven2, som kommer med vettiga defaultvärden, vilket leder till att de flesta plugins fungerar out-of-the-box. Men ett byggverktyg blir inte komplett om det inte finns bra IDE stöd och för eclipse är det m2eclipse. M2eclipse har genomgått stora förändringar de senaste 8 månader då 6 personer på heltid arbetat med m2eclipse plugin. För att enklast installera m2eclipse, så använder man Eclipse Software Update och anger:
http://m2eclipse.sonatype.org/update-dev/
I större organisationer där man vill dela byggda moduler eller där säkerhetspolicys begränsar användare att vara direkt uppkopplad mot Internet finns Nexus. Nexus blir den repository som man användare frågar efter moduler, istället för att direkt gå till Maven2 centrala repository. Sist men inte minst så behöver man inte längre komma ihåg vilka archetypes det finns för Maven2, alla tillgängliga finns direkt sökbara via m2eclipse, då man skapar nytt Maven2 projekt innefrån Eclipse.

No comments: