Software Project Management

Apache Maven


1 day


Instructor Lead


Ideal for programmers who want to use Maven on their projects. This class is also appropriate for the existing Maven user who is interested in developing a greater understanding of the Maven fundamentals.


Prior experience of JAVA, JavaEE and eclipse


This course covers all of the basic fundamentals of Maven. It covers dependencies, plugins, repositories, IDE integrations, and all the basic commands of Maven.


Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:

  • Making the build process easy
  • Providing a uniform build system
  • Providing quality project information
  • Providing guidelines for best practices development
  • Allowing transparent migration to new features
Topics Include:
  1. Introduction to Maven
    • What is Maven?
    • How Maven works?
    • What does Maven do?
    • Maven plugin architecture
    • Conceptual Model of a project
    • ?nstalling Maven
    • Eclipse and Maven
  2. Maven Quickstart
    • Create a simple Maven project
    • Archetypes
    • Project structure
    • Super pom
    • Building Maven Project
  3. Maven Core Concepts
    • Maven plugins and Goals
    • Maven Lifecycle
    • Maven Coordinates
    • Dependency Management
    • Maven Repositories
    • Site Generation and Reports
  4. Customizing a Maven Project
    • Customizing compiler
    • Customizing project information
    • Managing dependencies and scopes
    • Managing classpath resources
    • Customizing tests
    • Integration testing
  5. Multi-module Projects
    • Module Layout Strategies
    • Parent and Submodule Configuration
    • Web Projects
    • Building Multi-Module Projects
  6. Dependency Management in Depth
    • Transitive Dependencies
    • Limiting Dependencies
      • Dependency Mediation
      • Dependency Scopes
      • Dependency Management
      • Excluded Dependencies
      • Optional Dependencies
    • Importing Dependencies
    • Bill Of Materials (BOM)
  7. Release Management
    • Releasing Software
    • Maven Release Plugin
    • Distribution Repositories
    • Deploy to Nexus Instance
    • Introduction to Nexus
  8. Maven Best Practices