3.55 out of 5
32 reviews on Udemy

Getting Started with Apache Maven

Design and manage simple to complex Java projects effectively using Apache Maven’s project object model
Packt Publishing
429 students enrolled
English [Auto-generated]
The video course entails a crisp demonstration of the concepts of building projects through Apache Maven backed by practical and illustrative examples.

Getting Started with Apache Maven will introduce you to the world of synergized development in the Maven ecosystem. The course logically explains the various concepts of the tool, and shows how to proceed from simple assignments to complex ones.

Maven is not simply a tool to invoke compilers and utilities, but it is also an approach to easily constructing your project by accessing its ever-expanding world of tools and libraries.

You will learn how to pull in dependencies simply by specifying their coordinates, how to customize your lifecycle with plugins, and see how easy it can be to create a project website. You will see how to generate reports on your code that will enable understanding and will let you know when your developers are running into problems. You will understand how to scale up from simple projects to multi-module ones.

This video course walks you through the steps by presenting examples, starting with very basic ones, and growing to more elaborate ones once you have mastered the basics.

About the Author

Russell Gold has been a Java developer since 1996 and is the author of the open-source project, HttpUnit, as well as a handful of smaller open source projects. He is also a committer on the Codehaus Mojo project, where he maintains the idlJ and RMIC plugins.

He has spent the major part of his career looking for better ways to develop software, is a staunch advocate of agile development, and has embraced Maven as a major advance in build philosophy and technology. Russell is currently employed by Oracle.

I would like to express gratitude to my wife Gwen, for her patience as I spent many hours working on this project, as well as to my boss and co-workers who have offered encouragement and feedback.


Introduction to Apache Maven

With all the build systems available, it can be hard to understand what makes Maven special. Understanding some history can make this clearer.

Installing Apache Maven

Before getting started, you need to install Maven. A simple procedure is described.

Understanding the Maven Repository

All Maven artifacts are referred to using Maven Coordinates. This is the organizational structure of the repository.

Understanding the Maven Lifecycle

Maven's approach to builds is based on the lifecycle. Examining a build is a way to start seeing how it works.

Understanding the Role of Plugins

Maven uses plugins to perform build steps. Plugin mojos are identified by their associated goals and bound to build phases.


Introducing Maven Dependencies

Add dependencies to a project by specifying their Maven coordinates. Maven will do the rest.

Controlling Maven Classpaths

Some dependencies should only be applied to the test classpaths. The scope element controls this.

Maven and Transitive Dependencies

Using a dependency often means depending on its own dependencies. Maven makes this straightforward.

Managing Dependencies that All Projects Need – Part 1

When many projects use the same dependency, Maven can provide a single place to define it for all of them.

Managing Dependencies that All Projects Need – Part 2

When a dependency is used only by a small number of projects, Maven can define a single place to define the versions to use.


Introducing Maven Plugins

Sometimes you need to reconfigure a build step. Specify a plugin by coordinates and add the configuration data.

Adding Steps to a Maven Build

You can add steps to a Maven build. Specify a plugin and add an execution element to say what to run and when.

Code Generation

Code generation is generally a two-step process: first generate and then compile. Maven requires only one setting.

Managing Plugins with a Parent POM

When many projects use the same plugin, Maven can provide a single place to define it for all of them.

Finding Available Plugins

A lot of useful plugins have been written for Maven builds. Learn how to find what's available.

Controlling the Build

Maven Build Properties

Some build values and parameters can change frequently. Build properties allow convenient updating of these values.

Maven Profiles

Sometimes it is useful to choose which goals will be run during a build. Placing them in a profile allows them to run conditionally.

Profile Activation via Properties

The condition for performing certain actions can depend on the value of a property. Profile activation can be made to depend on a property value.

Profile Activation via Environment

Build behavior may depend on the presence of various environments. Build profiles can be triggered based on files, system, or JDK versions.

User Settings, Profiles and Repositories

Some behavior can be specific to a single developer. Controlling definitions can be placed in settings.xml.

The Project Website

The Basic Website and Reports

Every important project should have a website. Maven can generate one with little work.

Using Report Plugins

One good use of a project website is to monitor the health of the code. Use Maven to add automatically generated code reports to the site.

Creating Custom Pages

Most website content needs to be defined by the development team. Maven provides a simple syntax to create pages.

FAQ (frequently asked question) Pages and Site Appearance

The default appearance of a Maven site is not for every project. Maven allows developers to customize its look.

Deploying to a Web Server

A website needs to be uploaded to a server to be useful. Configure Maven to do this automatically.

The Maven Release Process

Deploying to a Repository

Projects can only use artifacts found in a repository. Maven can upload artifacts in the deploy phase.

Using Snapshots

Once an artifact is published, it should not be changed. Snapshots can be published over and over again to test an artifact before releasing it.

Preparing for a Release

Releasing software requires a number of steps. Use the Maven release:prepare goal to push and tag the release source to CM.

Releasing Maven Artifacts

Once the code to be released is tagged in CM, it needs to be built and published. Use the Maven release:perform goal to do this.

Preparing for an Open Source Release

Open source projects should be published to Maven Central for general availability. There are several requirements that must be met before publishing.

Publishing to Maven Central

There are some differences in the process for publishing to Maven Central. Use the repository manager to verify and release artifacts.

Multi-module Projects

Understanding the Multi-module Project

Complex projects generate multiple artifacts, but a Maven project only builds a single artifact. Use inheritance and aggregation to create large projects.

Incremental Building with Multiple Modules

Large projects can take a long time to build. Use the -rf switch to rebuild from the middle of a project.

Building a Website for a Multi-module project

Complex projects need complex websites. Understand how the site plugin handles inheritance.

Releasing the Multi-module Project

Releasing a multi-module project can be cumbersome. Learn about command-line shortcuts.

Maven Tricks and Patterns

Invoking Ant from Maven

Complex projects may require more sophisticated scripting than Maven supports. The antrun plugin allows access to ant from Maven.

Accessing Maven Artifacts from Ant

An ant script can access artifacts from a Maven repository. Appropriate taskdefs can use Maven coordinates directly.

Building a Simple Installer

End users don't usually access Maven repositories to obtain programs. Use Maven to create an installer.

Running Functional Tests

Functional tests are sometimes created before the code that satisfies them is ready. The failsafe plugin can run them without failing.

Disabling Default Plugin Bindings and Excluding Transitive Dependencies

Both, the default plugin bindings and transitive dependencies, can cause problems. Use Maven features to turn them off when needed.

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!
3.6 out of 5
32 Ratings

Detailed Rating

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


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