O'Reilly logo
live online training icon Live Online training

Maven: Taming the Beast

Roberto Cortez

Love it or hate it (and a lot of people seem to hate it), Maven is a widely used tool in Java development. We can consider that Maven has been the de-facto standard build tool for Java over the last 15 years. Most experienced developers already have their share of Maven headaches. Unfortunately, new developers are going through the same hard learning process, because they don’t know how to deal with Maven particularities. “Why is this jar in my build?”, “I can’t see my changes!”, “The jar is not included in the distribution!”, “The artifact was not found!” are common problems.

In this session, we will start with the basics and learn about the principles and foundations in which Maven is built on. From there, we will dig deep and learn how to improve, enhance and debug your build. In the end, this will provide you a good understanding on how to use Maven to build any kind of Java project.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to configure Maven
  • How the Maven Build Lifecycle works
  • How Maven deals with Dependency Management

And you’ll be able to:

  • Setup a Maven project
  • Add Maven plugins to enhance your build
  • Understand build errors and how to fix them

This training course is for you because...

  • You’re a Java developer
  • You are just starting your Java development career and are new to Maven
  • You already used Maven, but you feel puzzled about it and you want to learn new tricks to improve skills


  • Understanding of Java programming basics
  • Terminal or command line basic experience

Recommended preparation:

  • JDK 11 or 13 installed on your machine (11 recommended for now)
  • Latest version of Maven downloaded and installed on your local machine
  • Optionally, have either the IntelliJ IDEA or Eclipse IDEs installed. (If not one of those two, any other code editor is fine.)
  • Example and exercise code will be provided in a GitHub repository

Recommended follow-up:

About your instructor

  • Roberto Cortez is a passionate Java Developer with more than 10 years of experience. He is involved within the Open Source Community to help other individuals spread the knowledge about Java technologies. He is a regular speaker at conferences like JavaOne, Devoxx, Devnexus, JFokus and others. He leads the Coimbra JUG and founded the JNation Conference in Portugal. When he is not working, he hangs out with friends, play computer games and spends time with family.


The timeframes are only estimates and may vary according to how the class is progressing

Getting started with Maven

  • Presentation: Maven Overview (10 minutes)
  • Presentation: Maven Principles (10 minutes)
  • Presentation: Using Maven (10 minutes)
  • Exercise: Your first Maven Project (20 minutes)
  • Break / QA (10 minutes)

Managing Dependencies

  • Presentation: Managing Maven Dependencies (20 minutes)
  • Exercise: Add Dependencies to your Maven Project (20 minutes)
  • Exercise: Dependency Mediation (10 minutes)
  • Break / QA (10 minutes)

Plugins, Snapshots, and Projects

  • Presentation: Maven Plugins (10 minutes)
  • Exercise: Enhance your Maven Project with Plugins (20 minutes)
  • Presentation: Using Maven Snapshots (10 minutes)
  • Presentation: Multimodule Maven Projects (10 minutes)
  • Exercise: Add modules to your Maven Project (20 minutes)
  • Break / QA (10 minutes)

Collaborating Using Maven

  • Presentation: Project Health with Maven (10 minutes)
  • Presentation: Team collaboration (10 minutes)
  • Presentation: Common Maven Pitfalls (10 minutes)
  • Q&A (10 minutes)