Course:  MAVEN
Duration:  3 Days
Level:  II
Course Summary

Developers have worked on disorganized application projects, where every part seemed to have its own build system, and no common repository existed for information about the state of the project. This course teaches the student how to use Maven for application management. It explains how this tool can bring order to software development projects. Maven largely compliments Ant as the build tool of choice for large open source Java projects because, unlike Ant, Maven is also a project management tool that can run reports, generate a project website, and facilitate communication among members of a working team. The instructor demonstrates the tool's capabilities through the development, from requirements to deployment, of several sample applications -- a simple software development project, a simple web application, a multi-module project, and a multi-module enterprise project.

« Hide The Details
Topics Covered In This Course

Apache Maven

  • Convention over Configuration
  • A Common Interface
  • Universal Reuse through Maven Plugins
  • Conceptual Model of a ?Project?
  • Maven Alternative
  • Comparing Maven and Ant

Installing and Running Maven

  • Verify Your Java Installation
  • Downloading Maven
  • Installing Maven
  • Testing a Maven Installation
  • Maven Installation Details
  • Getting Help with Maven
  • Using the Maven Help Plugin

A Simple Maven Project

  • Introduction
  • Creating a Simple Project
  • Building a Simple Project
  • Simple Project Object Model
  • Core Concepts

Customizing a Maven Project

  • Defining the Simple Weather Project
  • Creating the Simple Weather Project
  • Customize Project Information
  • Add New Dependencies
  • Simple Weather Source Code
  • Add Resources
  • Running the Simple Weather Program
  • Writing Unit Tests
    • Adding Test-Scoped Dependencies
  • Adding Unit Test Resources
  • Executing Unit Tests
    • Building a Packaged Command-Line Application

A Simple Web Application

  • Defining the Simple Web Application
  • Creating the Simple Web Project
  • Configuring the Jetty Plugin
  • Adding a Simple Servlet
  • Adding J2EE Dependencies

A Multimodule Project

  • The Simple Parent Project
  • The Simple Weather Module
  • The Simple Web Application Module
  • Building the Multimodule Project
  • Running the Web Application

Multimodule Enterprise Project

  • The Simple Parent Project
  • The Simple Model Module
  • The Simple Weather Module
  • The Simple Persist Module
  • The Simple Web Application Module
  • Running the Web Application
  • The simple-command Module
  • Running simple-command

Optimizing and Refactoring POMs

  • POM Cleanup
  • Optimizing Dependencies
  • Optimizing Plugins
  • Optimizing with the Maven Dependency Plugin
  • Final POMs

The Project Object Model

  • POM Syntax
  • Project Dependencies
  • Project Relationships
  • POM Best Practices

The Build Lifecycle

  • Package-Specific Lifecycles
  • Common Lifecycle Goals

Build Profiles

  • Purpose
  • Portability Through Maven Profiles
  • Profile Activation
  • External Profiles
  • Settings Profiles
  • Listing Active Profiles
  • Tips and Tricks

Maven Assemblies

  • Assembly Basics
  • Overview of the Assembly Descriptor
  • The Assembly Descriptor
  • Controlling the Contents of an Assembly
  • Best Practices

Properties and Resource Filtering

  • Maven Properties
  • Resource Filtering

Maven and Eclipse: m2eclipse

  • m2eclipse Overview
  • Installing the m2eclipse Plugin
  • Enabling the Maven Console
  • Creating a Maven Project
  • Create a Maven POM File
  • Importing Maven Projects
  • Running Maven Builds
  • Working with Maven Projects
    • Working with Maven Repositories
  • Using the Form-Based POM Editor
  • Analyzing Project Dependencies in m2eclipse
    • Maven Preferences

Site Generation

  • Building a Project Site with Maven
  • Customizing the Site Descriptor
  • Site Directory Structure
  • Writing Project Documentation
  • Deploying Your Project Web Site
  • Customizing Site Appearance
  • Tips and Tricks

Writing Plugins

  • Programming Maven
  • Plugin Descriptor
  • Writing a Custom Plugin
  • Mojo Parameters
  • Plugins and the Maven Lifecycle
What You Can Expect

At the end of the course, students will be able to:

  • Explain the POM and Project Relationships
  • Use Maven in the Build Lifecycle
  • Work with Plugins
  • Generate a Project website
  • Explain advanced site generation
  • Create Maven reports
  • Work with Properties
  • Build Profiles
  • Use the Maven Repository
  • Write Plugins
  • Use Maven in an IDE such as Eclipse
  • Use and create assemblies
  • Develop with Maven Archetypes
Who Should Take This Course

This course is designed for Application Developers.

Training Style

Lecture (50%) / Workshop (50%)

« Hide The Details
Related Courses
Code Course Title Duration Level
Ant - Another Neat Tool
2 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]