Maven

Build Prozesse automatisieren

Im Umfeld der Java Entwicklung gibt eine ganze Reihe Werkzeugen, die den Build Prozess standardisieren und vereinfachen. Stellvertretend seien Ant, Gradle, Buildr und selbstverständlich Maven genannt. Grade Maven erfreut sich durch seinen „Konvention vor Konfiguration“-Ansatz wachsender Beliebtheit, grade auch im kommerziellen Umfeld. Mit nur wenigen Konfigurationseinstellungen können Sie ein Java-Projekt bauen und verwalten.

Java Entwickler, Build- und Configuration Manager lernen in dieser Schulung die Basis-Konzepte von Maven im Alltag zu nutzen. Dazu zählen beispielsweise Repositories, GroupId, ArtifactId, Version. Es werden viele Beispiele vorgestellt und besprochen, wie ein Build mit Maven aussieht und welche Funktionen mit Maven abgebildet werden können.

Es wird besprochen wie das Dependency Management funktioniert und wie Artefakte ins Maven Central übernommen werden können. Weiterhin wird vorgestellt wie man einen Build in einem kommerziellen Umfeld strukturieren und Unternehmensstandards definieren kann.

Trainer und Dozenten

Karl Heinz Marbaise ist seit ca. 25 Jahren im Bereich der Softwareentwicklung tätig. Seit ca. 20 Jahren beschäftigt er sich mit Versionskontrollsystemen wie mit RCS, CVS, ClearCase und später mit Subversion und Git. Er führt seit Jahren Beratungen und Trainings im Bereich Software Konfigurationsmanagement (Subversion, Branching Strategien, Migrationsberatung), Build Management (Ant, Maven, Hudson/Jenkins) und Entwicklungsprozesse durch. Weiterhin hält er auf verschiedensten Konferenzen (z.B. Subversion Konferenz, GearConf) zu entsprechenden Themengebieten Vorträge.

Voraussetzungen

Die Voraussetzung für den Maven Workshop sind vor allem Kenntnisse in der Java Entwicklung. Darüber hinaus wird auch Wissen im Bereich des Unit Testings z.B. mit Hilfe von JUnit oder TestNG voraus gesetzt.

Grundlegendes Wissen im Bereich der Versionskontrolle (Subversion, Git o.ä. ist durchaus Hilfreich).

Inhalt

Maven Basics:

  • Repositories, Lifecycle
  • Project Object Model (POM)
  • Die Maven Koordinaten
  • POM Vererbung/Aggregation
  • Archetypes

Dependencies

  • Definition von Abhängigkeiten
  • Transitive Abhängigkeiten
  • Ein- bzw. Ausschluss von Abhängigkeiten

Beispiel Projekt

  • Einfachste POM
  • Paketierung, Unit Tests, Resources

Site generation

  • Wie eine Web-Site erzeugt wird.
  • Veröffentlichung einer Site (deploy)
  • Dokumentation, apt, fmt, xdoc, Reports

Reactor builds

  • Multiple Modules
  • mvn install
  • Integration Test
  • Packaging

Assemblies

  • Default assemblies
  • Archive types
  • Component Descriptors
  • Creating test-jars

Release Cycle

  • Wie der Release Zyklus arbeitet?
  • Wie der Release Zyklus zu nutzen ist.
  • Signierung von Artefakten während des Release Zykluses.

Best Practice, POM's, Modules

  • Warum und wie man Properties nutzt.
  • Filterung von Resources.
  • Definition und Nutzung von eigenen Resourcen.

Die settings.xml Datei

  • Definition von Servern
  • Passwörtern
  • Deploy Server

Profile

  • settings.xml
  • Profile in POM's
  • Aktivierung von Profilen.
  • Environment, Compatibility, Refactoring POM's

Unterschiedliche Plugins

  • Compiler, Jar,
  • Changes, Assembly, Appassembler, Buildnumber
  • plugin, War, Cargo, Dependency, Antrun