1.  Grundlegendes

Diese Ausarbeitung entstand während des Informatik Seminars ”Linux und Netzwerke, Softwareentwicklung mit Eclipse” im Wintersemester 2008/2009 unter Leitung von Herrn Prof. Dr. Ulrich Hoffmann und Herrn Prof. Dr. Uwe Schmidt.Maven ist ein Projektmanagement and Comprehension Tool, das Unterstützung und Vereinfachung für folgende Projektentwicklungsbereiche bietet:

1.1 Entstehung
1.2 Ziele
1.3 Konvention vor Konfiguration

1.1.  Entstehung

Das Wort ”Maven” stammt ursprünglich aus dem Hebräischen bzw. Jiddischen, welches grob übersetzt ”Verständnis” oder ”Sammler von Wissen” meint. Um 1960 tauchte dieses Wort wieder im Englischen auf und wurde in kommerziellen Texten verwendet. Die heutige Bedeutung(Wikipedia) lautet:

Ein ”Maven” ist ein vertrauenswürdiger Experte in einem bestimmten Bereich, der sucht, um Wissen an andere weiterzugeben.

Maven entstand im Jahre 2001 innerhalb des Apache Jakarta Turbine Projekts. Es wurde entwickelt, um das komplexe Buildmanagement, das hauptsächlich auf Ant basierte, zu vereinfachen und zu restrukturieren. Dabei wurde besonders Wert auf die Wiederverwendbarkeit von häufig genutzten Bibliotheken gelegt. Durch wachsenden Zuspruch, wurde aus dem einst kleinen Teilprojekt ein Top-Level Projekt der Apache Software Foundation. Allerdings hatte Maven 1 noch sehr viele Schwächen, sodass schon während der ersten Version an dem Nachfolger Maven 2 gearbeitet wurde, dessen erstes Release 2005 das Licht der Welt erblickte. Das zu diesem Zeitpunkt aktuelle Release von Maven ist Version 2.0.9 vom 10. April 2008. Die folgenden Inhalte beziehen sich auf diese Version.

Maven wurde unter der Apache Software License( Version 2.0 ) veröffentlicht und ist Open Source Software.

1.2.  Ziele

”Maven is a project development management and comprehension tool.”

Dies ist der erste Satz auf der offiziellen Homepage, der einem Neuling aber nur eine sehr wage Vorstellung von Maven gibt. Aus ihm geht jedoch hervor, dass Maven nicht nur bei der Entwicklung und Verwaltung von Projekten unterstützen soll, sondern auch hilft das Projekt zu verstehen und transparenter darzustellen.

Bei all diesen Eigenschaften verfügt Maven über ein hohes Maß an Automatisierung und standartisierten Richtlinien (unter dem Aspekt ”Best practices”), sodass die Anwender entlastet werden und Projektneulinge einen schnellen Einstieg erhalten.

1.3.  Konvention vor Konfiguration

Maven verfolgt das Grundprinzip ”Convention Over Configuration” (Konvention vor Konfiguration). Durch einen hohen Grad an Vorgaben und Richtlinien soll der Aufwand durch Konfiguration auf ein Minimum begrenzt werden. Dies ist ein sehr wichtiger Aspekt der agilen Softwareentwicklung. Der Benutzer soll nicht viel Zeit für die Konfiguration oder das Aufsetzten der Arbeitsumgebung aufwenden, sondern direkt, einfach und schnell ein bestehendes Projekt erstellen oder bearbeiten können. Weiterhin ermöglicht dieser Ansatz eine unternehmensweite Basis für Projekte zu schaffen, auf der alle Beteiligten bequem arbeiten können. Die Vorgaben und Richtlinien sollen dabei aber optional sein, sodass spezielle Anpassungen zu jeder Zeit konfiguriert werden können. Im Folgenden sollen nun die wesentlichen Konfigurationsmechanismen und Funktionsweisen erläutert werden.