-
Learning by doing
-
Trainers with practical experience
-
Classroom training
-
Detailed course material
-
Clear content description
-
Tailormade content possible
-
Training that proceeds
-
Small groups
In the course Maven Development participants will learn the skills and knowledge needed to use Maven as an automated build and dependency management tool.
The course starts with an overview of the problems in project and dependency management, how Maven works and the role of Maven repositories. Explained is how Maven compares to the automatic build tool Ant.
Next the directory structure of Maven projects and the standard life cycle are discussed. Maven projects can be created using predefined archetypes that have a certain project structure built in from the start. The role of Maven goals and plugins is also covered.
Then the Project Object Model (POM) with pom.xml is treated. The meaning of the main entries therein such as Group, Artifact and Version are discussed and also a more complex structure with multiple pom files and pom inheritance.
The Maven Archetypes are also part of the program of the course Maven Development. Attention is paid to a number of commonly used archetypes. Also discussed is how you can create archetypes yourself with the Maven Archetype plugin and which are provided with a prototype POM and prototype files.
Furthermore Maven Repositories such as the Maven Central repository, Enterprise Repositories, the Local Developer Repository and Remote Repositories are treated. The order in which Maven searches the repositories is discussed and Plugin Repositories are covered as well.
Finally attention is paid to the role of Maven in performing tests, to continuous integration and to release management with Bamboo, Team City or Jenkins.
The course Maven Development is intended for developers who use Maven for dependency management and for the automatic building and deployment of projects.
To participate in the course Maven Development knowledge of and experience with Java and XML is required.
The theory is discussed on the basis of the presentation slides and is interspersed with exercises. Demo projects in Maven are used to clarify the concepts. The course material is in English. The course focuses on Maven version 3.
Participants receive an official certificate Development with Maven after successful completion of the course.
Module 1 : Maven Intro |
Module 2 : Core Concepts |
Module 3 : Build Lifecycle |
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 |
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 |
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 |
Module 5 : Plugins and Goals |
Module 6 : Archetypes |
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 |
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 |
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 |
Module 8 : Dependency Management |
Module 9 : Build Automation |
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 |
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 |
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 |