4.17 out of 5
334 reviews on Udemy

Maven Crash Course: Step-by-Step Introduction for Beginners

Quick introduction of core concepts reinforced with practical, ,project-based examples using Maven, Git and Eclipse.
Jason Taylor
3,430 students enrolled
Understand the key concepts in Maven
Install and Configure Maven on Mac and Windows platforms
Build Java projects using Maven
Find and manage dependencies in Maven
Use Maven with Eclipse
Integrate Git source control with Maven projects

The Maven Crash Course is designed to cut academic theory to just the key concepts and focus on basics tasks in Maven in order to be productive quickly. The lessons and examples provided are delivered in a step-by-step, detailed way to ensure mastery of the skills and topics covered.

Course Outline

Introduction walks through the course goals, approach and then define Maven.

After just a little bit of Theory in Core Concepts, we step through Maven Installation on Windows and Mac OS X.

In Setup and Getting Help, we cover how to ask for help in Maven. We also download the course working files on GitHub.

After the setup and installation of Maven, we get hands-on in Getting Started as we create our first Maven project — keeping it simple with a minimal demo. Maven Basics covers additional concepts. The concepts are continued in Beyond the Basics as we look into dependencies, repositories and plugins within Maven. Then we improve our project by Unit Testing — where we add JUnit tests, deal with (and avoid) testing failures. Finally, the last section of the main part of this course is dedicated to running Maven within Eclipse using the M2Eclipse plugin.

During the entire course, we get into a habit of saving our changes periodically using Git source control.

Finally, the Bonus section provides some extra lessons to compliment the course and add value. These lesson are non-critical and thus don't belong in the main part of the course.

Course Features

Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum (about 20 minutes).

Over 2 hours of Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated.

At the end of each section containing command line interaction, Command Listing lectures that serve as reference and reminder of the commands used in the previous lecture(s). Each Command Listing includes the exact listings used in the previous lectures. All commands used in this course are available through the Command Listing lectures.

The Quizzes at the end of each section reinforce the key concepts by testing your newly learned knowledge throughout the course.

Project files and examples are all available on GitHub.


Course Introduction, Goals and Objectives, and Approach

This lecture provides an introduction to this course by listing the course objectives and goals.

What is Maven?

This lecture provides a simple definition of Maven, including enumerating some key features.

Why starting with Command Line?

This lecture describes the reasons the instructor will start with the command-line / terminal with Maven instead of using a graphical client.

Core Concepts

Core Concepts Overview and Convention over Configuration

An overview of the core concepts that will be covered in this course, including Maven's preference for convention over configuration, the Project Object Model (POM), dependency resolution, Maven repository, lifecycle, and Plugins.

Dependency Resolution and the Maven Artifact Repository

Explaining how dependency resolution works through the chains of dependencies calling on each other, as well as an explanation of how the Maven repository is structured to host your artifacts.

Life-cycles, Phases and Goals, and Plugins

An explanation of the three building blocks of Maven: goals, phases, and lifecycles. And a further explanation of how those work with plugins.

Introduction and Core Concepts Quiz

Test concepts learned in the Course Introduction and Core Concepts sections of this course.


Installation Approach

An overview of the quick installation that will be done in this section. The required tools are the Java JDK, a decent text editor, Git, and of course Maven.

Maven Installation on Windows

Installing the software development tool Maven onto our local Windows system.

Maven Installation on Mac OS X

Installing the software development tool Maven onto our local Mac OS system.

Installation Commands

Setup and Getting Help

Getting Help with Maven

A quick look into how to get help within Maven on our terminal program.

Download Project files from GitHub

Setting up our project files within our terminal and installing the files we need into the directory from GitHub.

Setup Commands

Getting Started: The Minimal Maven Project

Minimal Project Setup and First Run

Creating our first maven project from our GitHub repository example code, and running that first project by executing the package goal.

Adding Java Source to the Project

Creating a Hello World Java source code example in the main Java folder in our Maven project in order to have something to execute when running our Maven project.

Goals, Phases and Life-cycles in Action

Executing both the clean and package goals to get our lifecycle going in Maven, in order to review the output in our command to see how Maven builds our project.

Minimal Project Clean Up

Committing our Maven repository's changes to the Git repository we have set up on our local system, making sure to use the ".gitingore" to exclude the target directory.

Getting Started Commands

Maven Basics: A Simple Maven Project

Download Helper Script (Optional)

Downloading an optional helper bash script from GitHub that will set up a skeleton version of a Maven repository using the script.

Standard Directory Template

Creating a standard Java based maven repository by executing the bash script we downloaded in the previous lesson.

Adding the Java Source

Creating the Hello world Java file in the appropriate folder within our Maven project, pasting in the basic hello world Java source code we copied from the GitHub repository.

Project Metadata, Improving the Project POM

Updating all of the default values from the Maven POM file in order to add proper Metadata to our Maven project, then re-building our POM to see any changes it created.

Build Settings - Changing the Final Name

Using the "finalname" tag within our Maven POM to rename the final output of our Maven project.

Local Maven Repository

Installing our jar file to our local Maven repository.

Maven Basics Clean up

Adding and committing our changes from this section to our Git repository, while also adding more unwanted files to our ".gitignore" file.

Maven Basics Commands
Maven Basics Quiz

Beyond the Basics: Dependencies and Plugins

Project Words Setup

Setting up our project for this section named words, copying in the contents from our GitHub example repository to replace the automatically created pom, then adding in the Java source code in the expected folder.

Maven Dependencies

Troubleshooting the issues of our project not initially building due to the dependencies not being specified in our Maven POM. We will search for the libraries on Maven Central and then add them to our POM to get it to build.

Update Git

Committing our changes to our Git repository now that our project has it's needed dependencies.

Reviewing the Project Target Directory

Reviewing the files Maven generated and placed into the target directory on our local system.

Local Maven Repository

Looking at the local maven repository in the "m2" folder where our final Jar output is placed to explore all of the dependencies that our build is using.

Dependency Graph (Dependency Plugin)

Using Maven's main website to look at all of the Maven dependencies that we are using, then using a command to list out all the plugins we are using in in a specific project.

Update Project to Target Java 8 (Compiler Plugin)

Compiling our Maven project while targeting a newer version of Java in order to take advantage of newer Java features.

Beyond the Basics Clean Up

Committing our changes from this section to our Git repository.

Beyond the Basics Commands

Unit Testing

Adding the Unit test source for Java project

Adding unit testing to our "words" Maven project using junit using source code from the GitHub repository.

Unit Test Dependency, Test Scope, and Running Tests

Running our Unit test results to see what errors come up in order to find and add all of the dependencies needed, before finally compiling our finished unit test program.

Failing Unit Tests

Modifying our application test file in order to force a failed build to see what happens when unit tests fail.

Skipping Unit Test via Command Line

Skipping our unit tests in order to still allow a project to create a finalized build without passing the tests.

Skipping Unit Tests via Configuration (POM)

Disabling unit tests on a permanent basis by configuring our pom to ignore the unit tests we would otherwise run.

Reporting Unit Test Results

Getting a better more human readable version of the Unit tests results by modifying our POM xml by running the maven site phase to generate an HTML report of our unit tests.

Unit Testing Section Clean Up

Committing our changes from this section to the Git repository on our local system.

Unit Testing Commands
Beyond the Basics Quiz

Quiz covering dependency management, plugins and unit testing.

Installing Eclipse and Configuration on Windows

Install Eclipse on Windows

A complete guide to installing the integrated development environment Eclipse to your local Windows system.

Maven Configuration in Eclipse (on Windows)

Configuring your installation of Eclipse in order to work with our installation of Maven on our system.

Installing Eclipse and Configuration on Mac OS X

Tweak System Security (Install Anywhere)

Adjusting our settings on Mac OS X in order to allow applications from anywhere to be installed onto our local Mac system.

Install Eclipse on Mac OS X

A complete guide to installing the integrated development environment Eclipse to your local Mac OS system.

Maven Configuration for Eclipse (Mac OS X)

Configuring your installation of Eclipse in order to work with our installation of Maven on our system.

Installing Eclipse on Mac Commands

Using Maven with Eclipse

Create a New Maven Project in Eclipse

Creating our first new maven project within Eclipse, letting the IDE handle the busy work of creating all the needed files and folders.

Adding Java Source and Building within Eclipse

Creating our first Java class within the Eclipse IDE, making a basic hello world example output before finally running that output.

Importing An Existing Maven Project

Importing an existing Maven project we have already created into our Eclipse IDE, choosing which goals will be run when we run the project within Eclipse.

Project Object Model within Eclipse

Using eclipse to modify the POM XML file with a graphical interface.

Eclipse with Maven Quiz

Bonus: Miscellaneous Maven Tricks

Jump-start Your Project using Maven Archetypes

Using Maven archetypes to jump start a newly created Maven application.

Maven Tricks Commands

Special Offers

Bonus: Exclusive Student Discounts
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.2 out of 5
334 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


2 hours on-demand video
1 article
Full lifetime access
Access on mobile and TV
Certificate of Completion