Maven

Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Quelle: http://maven.apache.org/what-is-maven.html

Maven definiert einen klaren Buildzyklus nach dem Projektquelldateien und Konfigurationsdateien zu einem fertigen installierbaren Softwareprodukt oder einer Softwarekomponente verarbeitet werden. Egal ob es eine einfache Java Library (JAR) oder ein komplexes Enterprise Archiv (EAR) ist, Maven benötigt nur wenige Anweisungen die den Projektcharakter definieren. Diese werden durch ein zentrales Projekt Objekt Modell (POM) beschrieben und stehen somit allen Werkzeugen die Maven liefert zur Verfügung.

Maven selbst besteht nur aus einer Menge an Plugins die verschiedene Aufgaben (z.B. Quellcode generieren, kompilieren, JAR packen, etc.) erfüllen. Diese binden Sie bei Bedarf in Ihr Projekt ein - alternativ können Sie mit wenig Aufwand auch selbst Plugins realisieren.

Abhängigkeiten zu verschiedenen von Ihnen benötigten Komponenten lassen sich einfach durch die ausdrucksstarken Dependency Mechanismen abbilden. Maven definiert weiters Repositories in denen fertige Komponenten (JAR, WAR, EAR, etc.) abgelegt werden und von denen benötigte Komponenten automatisch in Ihre Projektentwicklungsumgebung geladen werden. Sie können sowohl externe Repositories benutzen als auch eigene interne Repositories aufbauen.

Maven Plugins ermöglichen auch die Erzeugung von Projektdokumentation in beliebigen Formaten (HTML, PDF, ...). Bei Bedarf werden in diese Dokumentation Reports eingebunden die durch Analyse Ihres Quellcodes entstanden sind. Unter diesen Reports finden Sie einfache Test-Reports, Cross Reference-Reports, Testcoverage-Reports, Metriken, etc., also alles was Sie benötigen um ständig über den Fortschritt und die Qualität in der Softwareentwicklung informiert zu sein.

Die Anbindung an Ihr Quellcode Repository (CVS, SVN, ...) versteht sich von selbst wie eine Unterstützung beim Releasemanagement.

Maven unterstützt damit optimal alles was Sie für automatisierte Buildprozesse beziehungsweise Continous Integration benötigen. Weiterführende Informationen zum Thema können Sie unter http://maven.apache.org/ nachlesen.

Diese Web Site wurde z.B. mit Maven realisiert, von der Übersetzung des Content nach HTML bis zum automatischen Transfer auf den Web Server.