Posts mit dem Label maven werden angezeigt. Alle Posts anzeigen
Posts mit dem Label maven werden angezeigt. Alle Posts anzeigen

Mittwoch, 10. Oktober 2007

Maven 2 Einführung

Immer wieder ist man bei Softwarentwicklung mit der Tatsache konfrontiert, dass man sich 70% der Zeit mit Infrastruktur, Entwicklungsumgebung, Applikationsserver und Co. beschäftigt. Man investiert nur 30% der Zeit für die Lösung des eigentlichen Business-Problems. Das eingesetzte Projekt-Budget fliesst demnach mehrheitlich in Dinge, die keinen Mehrwert und keinen direkten ROI zur Folge haben.

Um einen Teil der Infrastruktur-Problem zu minimieren wurde Maven2 entwickelt - ein Build und Projekt-Management Werkzeug.

Die Top 5 Punkte, die für Maven2 sprechen:
  • Einfaches, einheitliches Projekt-Setup, IDE unabhängig
  • keine JAR Files mehr im Source Code Repo
  • keine Ant-Scripts mehr schreiben
  • Einfaches Dependency Management (externe JAR Abhängigkeiten)
  • zentrales Company-Repository zur Wiedervendung von Komponenten
Ein Maven2 Projekt hat man in weniger als 5 Minuten eingerichtet und zwar mit compile, clean, package, test etc. ohne dass mein eine Zeile Ant-Script geschrieben hat. Maven2 basiert auf einen POM.xml File, in welchem das Projekt definiert wird. Durch dieses POM.xml wird die Umgebnung für Maven2 eingerichtet.

Ein sehr gutes Buch (PDF) zum Thema Maven2 ist "Better Builds with Maven" (DevZuz), sehr emfpfehlenswert!

Montag, 3. September 2007

Automatisierter Build und Deployment III

Um automatisch den letzten Stand auf dem Trunk und Release zu bauen und zu deployen verwende ich ein Shell Script, dass auf einer Linux Maschine mit Hilfe von crontab automatisiert wird. Ich richte auf der Linux Maschine jeweils ein User pro Projekt ein, somit ist es einfacher die Projekte sauber voneinander zu trennen.

Beispiel crontab:
[myproject@linux ~]$ crontab -l
45 5,12 * * * /home/myproject/build.sh all


Wenn man es noch ganz schön machen möchte, dann man mit maven eine Site generieren lassen, die man dann auf dem www-Root ablegt. Diese Site liefert dann Informationen zum Projekt, dem Team und der Source-Code Anbindung.