Maven Development
Lesgeld
Maven Intro
De cursus gaat van start met een overzicht van de problemen bij project en dependency management, de werking van Maven en rol van Maven repositories. Hierbij komt aan de orde hoe Maven zich verhoudt tot het build tool Ant.
Maven Projects
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
Maven Intro
De cursus gaat van start met een overzicht van de problemen bij project en dependency management, de werking van Maven en rol van Maven repositories. Hierbij komt aan de orde hoe Maven zich verhoudt tot het build tool Ant.
Maven Projects
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 project structuur zit ingebakken. Ook wordt de rol van Maven goals en plugins besproken.
Project Object Model
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 meerdere pom files en pom inheritance.
Archetypes
Onderdeel van het programma van de cursus Maven Development zijn ook de Maven Archetypes. Aan een aantal veel gebruikte archetypes wordt aandacht besteed. Ook wordt besproken hoe je met het Maven Archetype plugin zelf archetypes kunt maken die voorzien zijn van een prototype POM en prototype files.
Repositories
Voorts wordt ingegaan op Maven Repositories zoals de Maven Central repository, Enterprise Repositories, de Local Developer Repository en Remote Repositories. De volgorde waarin Maven de repositories doorzoekt wordt besproken en ook Plugin Repositories komen aan bod.
Build Automation
Tenslotte wordt aandacht besteed aan de rol van Maven bij het uitvoeren van tests, aan continuous integration en aan release management met Bamboo, Team City of Jenkins.
Doelgroep Cursus Maven Development
De cursus Maven Development is bestemd voor developers die Maven willen gebruiken voor dependency management en voor het automatisch bouwen en deployen van projecten.
Voorkennis Maven
Om aan de cursus Maven Development te kunnen deelnemen is kennis van en ervaring met Java en XML vereist.
Uitvoering Training Maven Development
De theorie wordt besproken aan de hand van presentatie slides en wordt afgewisseld met oefeningen. Demo projecten in Maven dienen te verheldering van de behandelde concepten. De cursus gaat in op Maven versie 3. De cursustijden zijn van 9.30 tot 16.30.
Certificering Maven
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Maven Development.
Modules
Module 1 : Maven Intro
- Java Build Tools Intro
- Desired Features
- Ant + Ivy
- Build.xml
- Build File with Ivy
- Ivy Dependency Management
- Maven
- Build Lifecycle
- pom.xml
- Gradle
- Results Matrix
- Tools Comparison
Module 2 : Core Concepts
- What is Maven?
- Why Maven?
- Convention over Configuration
- Maven Directory Structure
- Project Object Model
- Maven Project Coordinates
- POM Structure
- POM Sections
- Plugins
- Archetypes
- Catalog File
- Dependencies
Module 3 : Build Lifecycle
- What is Build Lifecycle?
- Standard Lifecycles
- Key Lifecycle Phases
- Build Phases and Goals
- Clean Lifecycle
- Default or Built Lifecycle
- Default Lifecycle Phases
- Site Generation and Reporting
- Site Lifecycle
- Site Website
- Customizing the Lifecycle
- Package-specific Lifecycles
Module 4 : Profiles
- Environment variables
- User-defined properties
- Filtering Resources
- Build Profiles
- What is a Build Profile?
- Project Configuration with Profiles
- Profile Activation
- Explicit Profile Activation
- Activation via Maven Settings
- Activation via Environment Variables
- Activation via Operating System
- Activation via Files
Module 5 : Plugins and Goals
- What are Maven Plugins?
- Plugin Types
- Goals and Plugins
- Key Plugin Concepts
- Maven Antrun Plugin
- Maven Compiler Plugin
- Exec Maven Plugin
- Jetty Maven Plugin
- Eclipse Maven Integration
- Maven Checkstyle Plugin
- Findbugs Maven Plugin
- Maven PMD Plugin
Module 6 : Archetypes
- What is an Archetype?
- Different Archetypes
- Archetype Generate Command
- Maven Archetype Archetype
- Maven Archetype WebApp
- Simple J2EE Project
- Maven Archetype Simple Site
- Creating Archetypes
- Maven Archetype Plugin
- Archetype Descriptor
- Prototype POM
- Prototype Files
Module 7 : Repositories
- What is a Maven Repository?
- Enterprise Repositories
- Local Repository
- Central Repository
- Repositories in Super POM
- Remote Repository
- Maven Search Sequence
- Plugin Repositories
- Repository Management
- Deploying to Nexus with Maven
- Performing a Staged Release
Module 8 : Dependency Management
- What is Dependency Management?
- Searching Dependencies
- Transitive Dependencies
- Dependency Terminology
- Dependency Scope
- Optional Dependencies
- Version Ranges
- Project Versions
- Visualizing Dependencies
- Dependency Conflicts
- Excluding Transitive Dependencies
Module 9 : Build Automation
- Handling Rapid Changes
- What is a Snapshot?
- Snapshot Dependency
- Build Automation
- Using Snapshots
- Release Management
- The Maven Release Plugin
- Developer Release Workflow
- Integration with Source Control
- Continuous Integration
- Deployment Automation