Getting Started with Apache Maven

Design and manage simple to complex Java projects effectively using Apache Maven’s project object model
4.4 (18 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
366 students enrolled
$85
Take This Course
  • Lectures 40
  • Contents Video: 2.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2014 English

Course Description

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.

What are the requirements?

  • Getting Started with Apache Maven is intended for Java developers. Knowledge of ANT and Maven would be helpful, but is not essential.

What am I going to get from this course?

  • The video course entails a crisp demonstration of the concepts of building projects through Apache Maven backed by practical and illustrative examples.

What is the target audience?

  • Getting Started with Apache Maven is intended for Java developers. Knowledge of ANT and Maven would be helpful, but is not essential.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
03:35

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

03:30

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

03:06

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

04:16

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

04:01

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

Section 2: Dependencies
02:31

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

03:06

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

02:59

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

02:34

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

03:13

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

Section 3: Plugins
03:25

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

02:59

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

02:52

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

03:27

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

03:30

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

Section 4: Controlling the Build
03:41

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

02:50

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

02:52

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.

03:08

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

04:43

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

Section 5: The Project Website
04:13

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

03:46

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.

04:00

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

03:09

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

03:05

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

Section 6: The Maven Release Process
03:00

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

03:27

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.

03:19

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

02:20

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.

03:29

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

03:04

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

Section 7: Multi-module Projects
03:37

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

02:37

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

03:49

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

02:38

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

Section 8: Maven Tricks and Patterns
03:46

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

02:47

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

05:20

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

03:16

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

04:37

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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Over the past ten years Packt Publishing has developed an extensive catalogue of over 2000 books, e-books and video courses aimed at keeping IT professionals ahead of the technology curve. From new takes on established technologies through to the latest guides on emerging platforms, topics and trends – Packt's focus has always been on giving our customers the working knowledge they need to get the job done. Our Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course