Maven – Introductie


Maven is een Java build managementtool, die het hele proces van het bouwen van een software-applicatie automatisch kan uitvoeren. Denk hierbij aan verschillende aspecten, zoals compileren, testen, packaging, deploying en documentatie genereren. Maven maakt gebruik van het principe ‘conventie over configuratie’. Dit betekent dat je met Maven alleen datgene hoeft te configureren waarin je afwijkt van de standaard. Hierdoor wordt het gebruik van Maven erg simpel. In de Java-wereld is Maven de meest gebruikte build tool en je komt tegenwoordig bijna geen Java-project meer tegen dat geen gebruik maakt van Maven. De voordelen van Maven zijn:

  • hogere productiviteit omdat Maven veel aspecten automatisch uitvoert;
  • hogere kwaliteit van de code door automatische testen en code reporting tools;
  • betere communicatie in het team door up-to-date documentatie en reporting tools.

Tijdens de cursus Maven – Introductie leren de deelnemers de vaardigheden en kennis die nodig zijn om Maven te gebruiken als een geautomatiseerde build en dependency managementtool. Eerst wordt een overzicht gegeven van de problemen bij project- en dependencymanagement, de werking van Maven en de rol van Maven-repositories. Hierbij komt aan de orde hoe Maven zich verhoudt tot de automatische build tool Ant.

Vervolgens wordt de directory-structuur van Maven-projecten en de standaard life cycle besproken. Maven-projecten kunnen gecreëerd worden aan de hand van voorgedefinieerde archetypes, waarbij vanaf de start al een bepaalde projectstructuur is ingebakken. Aan een aantal archetypes wordt aandacht besteed, evenals aan de rol van Maven goals en plugins.

Vervolgens komt het Project Object Model (POM) met pom.xml aan de orde. De betekenis van de voornaamste entries daarin, zoals Group, Artifact en Version, komen aan bod en ook wordt ingegaan op een complexere structuur met meedere pom files en pom inheritance. Ten slotte wordt aandacht besteed aan de rol van Maven bij het uitvoeren van tests, continuous integration en release management met Bamboo.

De theorie wordt besproken aan de hand van presentatieslides en wordt afgewisseld met oefeningen. Demoprojecten in Maven dienen ter verheldering van de behandelde concepten. Het cursusmateriaal en de lunch zijn bij de cursus inbegrepen.

Doelgroep

Deze cursus is bestemd voor developers die Maven willen gebruiken voor dependencymanagement en het automatisch bouwen en deployen van projecten.

Voorkennis

Om aan deze cursus te kunnen deelnemen is kennis van en ervaring met Java en XML vereist.

Duur

De duur van deze cursus is twee dagen.

Groepsgrootte

De maximale groepsgrootte bedraagt acht personen.

Certificaat

Na afloop van deze opleiding ontvangen alle deelnemers een certificaat.

Module 1: Maven Intro

  • An Introduction to Maven
  • Key Features of Maven
  • History of Maven
  • Alternatives to Maven
  • Comparing Maven and Ant
  • Maven Directory
  • Maven Settings (Local and Global)
  • Local Maven Repository
  • Running Maven
  • Maven Options

Module 2: Core Concepts

  • Maven Directory Structure
  • Standard Maven Lifecycle
  • Key Lifecycle Phases
  • Customizing the Lifecycle
  • Lifecycle Overview
  • Default Lifecycle
  • Site Lifecycle
  • Package-specific Lifecycles

Module 3: Maven Plugins and Goals

  • Maven Coordinates
  • Dependency Management
  • Maven Repositories
  • Maven Archetypes
  • Plugins
  • Maven Goals

Module 4: Project and Dependencies

  • The Project Object Model (POM)
  • The Simplest POM
  • POM Components
  • Project Coordinates
  • GAV (Group, Artifact, Version)
  • Project Versions
  • Snapshot Versions

Module 5: Dependencies

  • Dependency Scope
  • Optional Dependencies
  • Version Ranges
  • Transitive Dependencies
  • Visualizing Dependencies
  • Dependency Conflicts
  • Excluding Transitive Dependencies

Module 6: Inheritance and Aggregation

  • POM Inheritance
  • The Super POM
  • Inherited Behavior
  • The Effective POM
  • Multi- Projects
  • Directory Structure
  • Container Projects
  • POM Aggregation

Module 7: Custom Builds

  • Properties and Profiles
  • Variables
  • POM Variables
  • settings.xml properties
  • Java System properties
  • Environment variables
  • User-defined properties
  • Filtering Resources
  • Build Profiles
  • Project Configuration with Profiles
  • Profile Activation
  • Maven Repositories
  • Repository Structure
  • Central Repository
  • Other Remote Repositories
  • Local Repository
  • Site Generation and Reporting

Module 8: Site Generation

  • Standardized Environment
  • Explicit Use of Plugin Versions
  • The Enforcer Plugin
  • Maven Site as Collaboration Tool
  • The Site Lifecycle
  • Default Site Layout
  • Creating a Site Project
  • Organizing Your Site
  • Adding Site Content
  • Site Reporting with Maven
  • Technical Documentation
  • Browsable Source Code
  • Displaying Test Results
  • Code Quality Metrics

Module 9: Web Development

  • Using the Maven Jetty Plugin
  • Developing Web Applications with Maven
  • Repository Management
  • What is an Enterprise Repository?
  • Nexus Repositories and Security
  • Deploying to Nexus with Maven
  • Managing Maven Settings with Nexus
  • Configuring Procurement in Nexus
  • Performing a Staged Release

Module 10: Release Management

  • Release Management
  • The Maven Release Plugin
  • Developer Release Workflow
  • Integration with Source Control
  • Example Using Subversion
  • What is Continuous Integration?
  • Benefits of Continuous Integration
  • Comparisons of Bamboo to other CI Servers/Products
  • Setting Up a Maven Job in Bamboo
  • Monitoring Bamboo Builds
  • Demonstration of Bamboo
Voor deze cursus zijn momenteel geen data gepland. Neem via onderstaand formulier contact met ons op voor meer informatie over de mogelijkheden.